Here is the error I am getting:
java.lang.NoSuchMethodError: com.Order.getList(Lepo/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList;
After decompiling the classes, I found that there should be a “Ljava/lang/String” as the first parameter. As you can see by the error that parameter is missing. So I decompiled the calling method’s class and it does a have a string as the first parameter.
This is where I am a little confused to what is happening here. The last time this code was modified was 2007 according to the timestamps. This error showed up about a week ago.
This is a struts app running on JBoss 4.0.0DR3. To my knowledge there has been no software upgrades on the server.
I also tried stopping JBoss, deleting all the temp directories and restarting.
Does anyone have any suggestions to the next step to take?
Edit:
Here is more of the stacktrace
java.lang.NoSuchMethodError: com.Order.getList(Lepo/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList;
at com.ViewStatusAction.retrieveList(ViewStatusAction.java:325)
at com.ViewStatusAction.executeAction(ViewStatusAction.java:115)
at com.BaseAction.execute(BaseAction.java:42)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
I’m assuming that both the
com.Orderandcom.ViewStatusActionare application code, not 3rd-party code.The exception means that you have a version mismatch of some kind.
The
ViewStatusActionclass expects there to be a method inOrderwith this signature:The
Orderclass does not declare a method with that signature. (It may have a different signature, or it may not exist at all.)When you originally compiled
ViewStatusAction, the compiler was able to find that method. However now, the runtime system cannot find it any more. This can only mean that you are using a different version ofOrderto the one that yourViewStatusActionclass was compiled against.You need to find out why you’ve now got this mismatch. Possible explanations include:
You have deployed a new version of one of the classes without deploying the new version of the other.
You have deployed an out of date version of one of the classes.
You have two versions of one or other of the classes on your class path and you have unwittingly changed the classpath search order.
What you need to do is find out where the incompatible classes are coming from, and how they got there. Once you have figured that out, the fix is likely to be self evident.
I note that your FQ class names doen’t conform to accepted standards:
(It is possible that your problem might be a fall-out of fixing the bogus
Lepo.Username …)