You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Deepal Jayasinghe (JIRA)" <ji...@apache.org> on 2006/06/05 11:01:31 UTC

[jira] Resolved: (AXIS2-679) Calling a service from within another service causes NPE

     [ http://issues.apache.org/jira/browse/AXIS2-679?page=all ]
     
Deepal Jayasinghe resolved AXIS2-679:
-------------------------------------

    Resolution: Fixed

fixed in current svn

> Calling a service from within another service causes NPE
> --------------------------------------------------------
>
>          Key: AXIS2-679
>          URL: http://issues.apache.org/jira/browse/AXIS2-679
>      Project: Apache Axis 2.0 (Axis2)
>         Type: Bug

>   Components: core
>     Versions: 1.0
>  Environment: WinXP Pro, JDK 1.4, Tomcat 5.5
>     Reporter: Ali Sadik Kumlali
>     Assignee: Deepal Jayasinghe

>
> Here is my scenario:
> 1) I have serviceA.wsdl and serviceB.wsdl. 
> 2) I generate skeletons and stubs with WSDL2Java
> 3) I have serviceA.aar which has serviceB.wsdl's stub
> 4) When I call serviceB's stub from a class found in serviceA.aar I get the following error:
> ----------------------------------------------------------------
> java.lang.NullPointerException
> 	at org.apache.axis2.context.ServiceGroupContext.getServiceContext(ServiceGroupContext.java:59)
> 	at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:101)
> 	at com.mycompany.service.test.account.AccountServicesStub.<init>(AccountServicesStub.java:79)
> ----------------------------------------------------------------
> I founded that "unassinged parent" caused the NPE. If the service is already registered in axisConfig it doesn't enter in the code that assings a parent to the service. Also, it doesn't uses the parent of the registered service.
> The code causes NPE is here:
> ----------------------------------------------------------------
> // org.apache.axis2.client.ServiceClient
> public ServiceClient(ConfigurationContext configContext,
>                      AxisService axisService) throws AxisFault {
>   ...
>   // If the service is already registered, it doesn't enter
>   // here so there will be no parent.
>   if (this.axisConfig.getService(this.axisService.getName()) == null) {
>     this.axisConfig.addService(this.axisService);
>   }
>   ServiceGroupContext sgc = new ServiceGroupContext(this.configContext,
>                 (AxisServiceGroup) this.axisService.getParent());
>   this.serviceContext = sgc.getServiceContext(this.axisService);
> }
> ----------------------------------------------------------------
> I made the following change and it worked:
> ----------------------------------------------------------------
> // org.apache.axis2.client.ServiceClient
> public ServiceClient(ConfigurationContext configContext,
>                      AxisService axisService) throws AxisFault {
>   ...
>   AxisService service = null;
>   AxisService registeredService = 
>     this.axisConfig.getService(this.axisService.getName());
>   if (registeredService != null) {
>     service = registeredService;
>   } else {
>     this.axisConfig.addService(this.axisService);
>     service = this.axisService;
>   }
>     
>   ServiceGroupContext sgc = new ServiceGroupContext(this.configContext,
>             (AxisServiceGroup) service.getParent());  
>   this.serviceContext = sgc.getServiceContext(service);
> }
> ----------------------------------------------------------------
> But  this time, there was no addressing and security headers in the soap message. Then I tried to manually engage the modules as following:
> ----------------------------------------------------------------
> stubB._getServiceClient().engageModule(new QName("addressing"));
> stubB._getServiceClient().engageModule(new QName("rampart"));
> ----------------------------------------------------------------
> It didn't work either.
> P.S.: I tried both 1.0 RC5 and 1.0 releases.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org