Я занимаюсь разработкой приложения для WebSphere 6.1, в котором используется сервлет Java. В моем сервлете я определил серийный номер версии 1L. После развертывания и запуска моего приложения я получаю LinkageError следующего типа (из журнала сервера):
[5/9/11 15:14:26:868 EDT] 0000001c WebApp
E [Servlet Error]-[ManageRecordsConsumerServlet]: java.lang.Exception:
java.lang.LinkageError: LinkageError while defining class:
<redacted>.docindexupdate.batch.servlet.ManageRecordsConsumerServlet
Could not be defined due to: (<redacted>/docindexupdate/batch/servlet
/ManageRecordsConsumerServlet) class name must be a string at offset=2074
This is often caused by having a class defined at multiple
locations within the classloader hierarchy. Other potential causes
include compiling against an older or newer version of the class
that has an incompatible method signature.
Я не уверен, в чем проблема. Я видел это ранее, прежде чем определять серийную версию uid, и подумал, что, определив это и будучи непротиворечивым, будущие обновления файла класса будут выполняться успешно. Нет ошибок при компиляции или развертывании на сервере. Возможно ли, что более старая версия сервлета кэшируется где-то на экземпляре WebSphere (в данный момент я только внедряю на моей машине разработки)?
class name must be a string at offset=2074
строка тоже сбивает с толку.