Веб-сервис Axis 1.2 с JDK 1.6.0 - PullRequest
1 голос
/ 05 мая 2009

Мы перенесли один из наших веб-сервисов оси, который был построен с использованием JDK 1.4 и оси 1.0.

Мы пытаемся перенести его в JDK 1.6.0 с осью 1.2, но я получаю следующее исключение нулевого указателя.

Тот же код работает нормально, как только вернитесь к JDK 1.4.

Любая помощь? Заранее спасибо.

java.lang.NullPointerException
    at au.com.michaelpage.placement.model.rdb.dao.StatusDAO.statusAlreadyExists(StatusDAO.java:275)
    at au.com.michaelpage.placement.model.rdb.dao.StatusDAO.insert(StatusDAO.java:176)
    at au.com.michaelpage.pseweb.migrator.MigratorManager.processOnlinePlacement(MigratorManager.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:388)
    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:283)
    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3495)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

Новая трассировка стека.

(404)Not Found
    at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
    at org.apache.axis.client.Call.invoke(Call.java:2748)
    at org.apache.axis.client.Call.invoke(Call.java:2424)
    at org.apache.axis.client.Call.invoke(Call.java:2347)
    at org.apache.axis.client.Call.invoke(Call.java:1804)
    at au.com.michaelpage.pseweb.migrator.ws.PseMigratorSoapBindingStub.processOnlinePlacement(PseMigratorSoapBindingStub.java:115)
    at au.com.michaelpage.pseweb.migrator.MigratorScheduledTask.run(MigratorScheduledTask.java:47)
    at au.com.michaelpage.pseweb.migrator.MigratorScheduledTask.main(MigratorScheduledTask.java:35)

Ответы [ 2 ]

0 голосов
/ 05 мая 2009

Сначала вы исследуете причину исключения NullPointerException в классе StatusDAO.java в строке № 275. Узнайте, почему объект имеет значение null.

Не уверен, что здесь может быть основной причиной, но я столкнулся с подобной проблемой при обновлении до новой версии Jibx. Jibx преобразует XML в объект Java и наоборот. Если конкретный список узлов пуст, он использовал его для установки пустого ArrayList, но в более новой версии он устанавливает его в null, что приводит к появлению нулевых указателей во многих местах. Следуя нулевому указателю, мне удается найти основную причину и устранить ее.

0 голосов
/ 05 мая 2009

Исключение похоже на то, что оно исходит из вашего кода:

au.com.michaelpage.placement.model.rdb.dao.StatusDAO.statusAlreadyExists(StatusDAO.java:275) 

Какую версию WebLogic вы используете? Единственная версия, сертифицированная для JDK 6, - это WebLogic 10.3.

Не могу сказать по трассировке стека, но держу пари, что это связано с генерацией прокси и конфликтующими версиями JAR.

Я думаю, подъем и нагрузка от JDK 1.4 и Axis 1.0 до JDK 6 и Axis 1.2 чреваты опасностью. Там многое изменилось. Неудивительно, что вы сталкиваетесь с трудностями.

...