2009-05-04 4 views
1

Nous avons migré l'un de nos services Web Axe qui a été construit à l'aide de JDK 1.4 et de l'axe 1.0.Service Web Axis 1.2 avec JDK 1.6.0

Nous essayons de le migrer vers JDK 1.6.0 avec l'axe 1.2, mais j'obtiens l'exception suivante de pointeur nul.

Le même code fonctionne correctement dès le retour au JDK 1.4.

Une aide? Merci d'avance.

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) 

Nouvelle trace de pile.

(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) 

Répondre

0

L'exception semble que cela vient de votre code:

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

Quelle version de WebLogic utilisez-vous? La seule version certifiée avec JDK 6 est WebLogic 10.3.

Je ne peux pas dire à partir de la trace de la pile, mais je parie que cela a à voir avec la génération de proxy et les versions JAR en conflit.

Je pense qu'un levage et une charge du JDK 1.4 et de l'Axe 1.0 vers le JDK 6 et l'Axe 1.2 sont menacés. Il y a beaucoup de choses qui ont changé. Ce n'est pas une surprise que vous rencontriez des difficultés.

+0

Bonjour, Merci pour la réponse. Nous utilisons uniquement Weblogic 10.3. Pendant ce temps, j'ai compilé et redéployé l'application et la trace de la pile est différente maintenant. (404) Introuvable sur org.apache.axis.transport.http.HTTPSender.readFromSocket (HTTPSender.java:744) J'ai posté une trace de pile complète au-dessus. Merci d'avance. –

0

Vous étudiez d'abord la cause de NullPointerException dans la classe StatusDAO.java au numéro de ligne 275. Voyez pourquoi l'objet est null.

Je ne sais pas ce qui pourrait être la cause première ici, mais j'ai rencontré un problème similaire lors de la mise à niveau vers une version plus récente de Jibx. Jibx convertit XML en objet Java et vice versa. Si une liste de noeuds particulière est vide, elle est utilisée pour la définir avec ArrayList vide, mais dans une version plus récente, elle le définit sur null, ce qui provoque nullpointers à de nombreux endroits. En suivant le nullpointer, je parviens à trouver la cause première et je l'ai corrigé.

+0

Salut Bhushan, Merci pour la réponse. En fait, la méthode dans StatusDAO est invoquée par une méthode dans MigratorManager. Cette méthode à son tour est invoquée par la méthode actuelle qui est exposée en tant que service Web. Dans le stub si je mets un point d'arrêt et le débogue, je pourrais voir une exception est levée quand la méthode 'invoke()' de 'org.apache.axis.client.Call' est invoquée. Mon problème est le même code sans aucune modification fonctionne bien avec JDK 1.4.2 mais pas avec JDK 1.6.0. Toute aide? Merci d'avance. –

Questions connexes