Apache Commons Lang Exception - java

I am trying to use StringUtil class from Apache Commons Lang jar (commons-lang3-3.1-bin.zip).
So I added this jar to my class path and I ran that program.
When I ran my code I am getting an exception like
"Caused by:java.lang.ClassNotFoundException:org.apache.commons.lang.StringUtils".
I opened this class using java decompiler and when I opened its showing as
"// INTERNAL ERROR //". Except this class all other classes are fine.
After that I downloaded the source code and I compile that class and I opened that compiled class in java decompiler then it also shows the same error. So how can I solve this issue and how can I use this issue

Between commons-lang 2.x.x and 3.x.x the packages have move from org.apache.commons.lang (that is missing to your code according to the exception) to org.apache.commons.lang3 as presented in your screenshot.
Either you downgrade to commons-lang 2.6 or you update your code to change the import declaration from org.apache.commons.lang.StringUtils to org.apache.commons.lang3.StringUtils

Make sure the file you downloaded is right.
Make sure the jar you added to your project isn't commons-lang3-3.1-bin.zip, but is commons-lang3-3.1.jar in commons-lang3-3.1-bin.zip.

http://commons.apache.org/proper/commons-lang/article3_0.html
Java code Despite the label of backwards incompatibility, in the vast
majority of cases the simple addition of a '3' to an import statement
will suffice for your migration.
Change: import org.apache.commons.lang -> import
org.apache.commons.lang3

Related

Using Jsoup library on eclipse [duplicate]

I have just recently started using Eclipse and am running into problems trying to install external libraries. Following online tutorials, I add the .jar file to the classpath and I see it in the referenced libraries folder. Despite this, when trying to import, I get the error:
The package org.apache.commons is not accessible
For reference, I am trying to install the apache math commons library.
Your code probably has two issues.
First, the import statement is wrong since in Java you cannot add a package itself, but all classes of a package as follows (note .*; at the end):
import org.apache.commons.math4.linear.*;
or a specific class, e.g.
import org.apache.commons.math4.linear.FieldMatrix;
Second, you use the Java Platform Module System (JPMS) by having a module-info.java file in the default package probably without the required requires <module>; statement. JPMS was introduced in Java 9 and you have Java 12.
Do one of the following:
Delete the module-info.java file (if needed, you can recreate it via right-clicking the project folder and choosing Configure > Create module-info.java)
In module-info.java add the corresponding requires statement, e.g. by going to the line with the import statement and using the corresponding Quick Fix (Ctrl+1)

Unable to use apache commons ftp import

I've been trying to create my own FTP client written in Java. I wrote one ages ago in C#, so I would like to try in Java. I created a user library for apache commons and added it to my build path. The problem is that when typing the import statement it doesn't recognise it. It finds a error at org, saying "import org cannot be resolved".
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
I am using eclipse as my IDE.
Here two screenshots showing the error:
The following line is probably missing in the module-info.java file:
requires org.apache.commons.lang3;
and in the Java Build Path the Classpath contains the broken (as you can see from the red error mark) item apache-commons-lang by mistake: select it and click Remove.
Since Java 9, modules can be specified, but this requires a correct module-info.java file and the libraries must be added to the Modulepath instead of to the Classpath. Without the module-info.java file it would be easier. Therefore, perhaps the simpler solution would be to delete module-info.java file.
In addition, the *-source.jar should be as Source attachment a child of the main JAR and the *-javadoc.jar is not needed with the source (but if, then as Javadoc location child of the main JAR).
Hint: If an error or a warning is shown with a light bulb, go to the line and click Ctrl+1 and Eclipse will suggest solutions for that problem.

How to generate protobuf 3.0 jar java?

I am quiet familiar with protobuf 2.5. I was trying to use protobuf3.0. It seems that the jar is to be generated form the source code available online. But when i import the source code into eclipse and try to create a jar, i can see many errors in the following files
/protobuf3/src/com/google/protobuf/Descriptors.java,
/protobuf3/src/com/google/protobuf/DynamicMessage.java
/protobuf3/src/com/google/protobuf/ExtensionRegistry.java
/protobuf3/src/com/google/protobuf/MessageReflection.java
/protobuf3/src/com/google/protobuf/TextFormat.java
/protobuf3/src/com/google/protobuf/UnsafeUtil.java
This is one of the errors "the import com.google.protobuf.DescriptorProtos cannot be resolved".
Is this the right way to generate the jar (or) is it available anywhere (or) is the full source code available anywhere.
Any help would be appreciated.
Thanks.
This is where i downloaded the source code protobuf3.0-source code
You can find a compiled (JAR) version of Protobuf to download here:
http://search.maven.org/remotecontent?filepath=com/google/protobuf/protobuf-java/3.0.0/protobuf-java-3.0.0.jar
I recommend you look at a build manager such as https://maven.apache.org/ to automatically handle fetching dependencies (libraries) for you.

Solrj Imports - package not found

I am trying to use SolrJ in Netbeans for my java application.
In the project library, I imported all the SolrJ java files :
org.apache.solr.client.solrj
But in my code, when I add :
import org.apache.solr.client.solrj;
It doesn't work and it says: package does not exist.
I have tried several methods but the package is never found.
What am I doing wrong here?
First, I don't think you can write the import that way. It should be more like this:
import org.apache.solr.client.solrj.*;
I don't know if Netbeans has an auto-import feature (have never used this IDE), but you might try to see if you can get Netbeans to auto-import something from solrj. Try SolrServer or QueryResponse.
Also, are you using Maven? Maven should make all this a little easier for you.
If that fails, I'm not sure what it could be, but here's a link to one or two people who had a problem very similar to yours: https://netbeans.org/projects/cnd/lists/users/archive/2007-12/message/86.

Imported jar files creates empty packages

I am importing a Jar file "com.ibm.mq.jar" into my workspace(Eclipse IDE).
While importing, a screen came where I could see all the classes in the Jar file.
After I imported it into the work space, I was able to import the package and following statement didn't give any error.
import com.ibm.mq.*;
But, in code I am not able to use any of the classes which were there in the package.
Like, "MQC" is a class in the package, but in code it doesn't reflect("MQC cannot be resolved as a type" error comes if I try to use it).
This jar file actually contains Websphere MQ API classes.
Can anyone advise, what am I missing.
If you're using MQ 7, check its documentation here. There was some stuff going on about deprecation of com.ibm.mq.mqc and, depending on the version you use, that class was replaced by com.ibm.mq.constants.MQConstants. Like this one, there are other cases.
In fact com.ibm.mq only contains the exception MQException, so you won't find any classes there. I suggest you check the version you're using and dig a little deeper into the docs, as a first step.

Categories