3 Replies Latest reply on Dec 23, 2008 12:04 PM by asoldano

    jboss.xml wsdl-override works with one JBoss version, but no

    jimpo

      I try to override my @WebServiceRef wsdl location using jboss.xml and wsdl-location. This works fine with portal 2.6.4 which is deployed on JBossAS 4.2.1GA but override is not being done with bundled portal 2.6.6 (JBossAS 4.2.3GA).

      One of my EJBs:

       @WebServiceRef(com.fooz.baz.webservice.vacationrequest.VacationRequestService_Service.class)
       private transient VacationRequestService vacationRequestService;
      
       @WebServiceRef(com.fooz.baz.webservice.employee.EmployeeService_Service.class)
       private transient EmployeeService employeeService;


      jboss.xml excerpt:

      <session>
       <ejb-name>ApplicationListingAction</ejb-name>
       <service-ref>
       <service-ref-name>com.fooz.baz.portlet.searchandapply.ApplicationListingAction/vacationRequestService</service-ref-name>
       <wsdl-override>http://remoteserver:8080/service/vacation?wsdl</wsdl-override>
       </service-ref>
       <service-ref>
       <service-ref-name>com.fooz.baz.portlet.searchandapply.ApplicationListingAction/employeeService</service-ref-name>
       <wsdl-override>http://remoteserver:8080/employee-service/employee?wsdl</wsdl-override>
       </service-ref>
       </session>
       </enterprise-beans>
      </jboss>


      When this is deployed on JBoss4.2.1GA I see what name the servicerefs get, and am able to use the same name in jboss.xml service-ref-name:
      14:14:13,722 INFO [EJBContainer] STARTED EJB: com.fooz.baz.portlet.freetextsearch.SearchAction ejbName: SearchAction
      14:14:13,725 INFO [JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.stateful.StatefulContainer
      14:14:13,726 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=portlets.ear,jar=ejb.jar,name=ManagerApplicationEditAction,service=EJB3 with dependen
      cies:
      14:14:13,739 INFO [ServiceRefHandlerJAXWS] setupServiceRef [jndi=/env/com.fooz.baz.portlet.manager.ManagerApplicationEditAction/vacationRequestProcess,tar
      get=com.fooz.baz.webservice.vacationrequestprocess.VacationRequestProcess]
      14:14:13,742 INFO [ServiceRefHandlerJAXWS] setupServiceRef [jndi=/env/com.fooz.baz.portlet.manager.ManagerApplicationEditAction/employeeService,target=com
      .fooz.baz.webservice.employee.EmployeeService]
      14:14:13,743 INFO [ServiceRefHandlerJAXWS] setupServiceRef [jndi=/env/com.fooz.baz.portlet.manager.ManagerApplicationEditAction/fortimeVacationService,tar


      But none of that is displayed when I deploy on JBoss 4.2.3 GA. When I ttry to use the EJB I see that the override ("remoteserver") is not working and instead the original wsdl ("localhost") location is used:
      14:25:38,497 INFO [STDOUT] DEBUG ApplicationListingAction.create(108) | Creating
      14:25:38,642 WARN [ServiceDelegateImpl] Cannot access wsdlURL: http://localhost:8080/employee-service/employee?wsdl
      14:25:38,644 WARN [ServiceDelegateImpl] Cannot get port meta data for: {http://www.ugu.fi/soa-poc/EmployeeServiceWSDL}EmployeeServiceSOAP
      14:25:38,749 WARN [ServiceDelegateImpl] Cannot access wsdlURL: http://localhost:8080/service/vacation?wsdl
      14:25:38,751 WARN [ServiceDelegateImpl] Cannot get port meta data for: {http://www.ugu.fi/soa-poc/VacationRequestServiceWSDL}VacationRequestServiceSOAP
      14:25:38,917 INFO [STDOUT] DEBUG ApplicationListingAction.create(108) | Creating
      14:25:39,001 ERROR [STDERR] 29.9.2008 14:25:38 com.sun.facelets.FaceletViewHandler handleRenderException
      SEVERE: Error Rendering View[/pages/apply/applicationList.xhtml]
      javax.ejb.EJBTransactionRolledbackException: org.jboss.ws.WSException: Target endpoint address not set
       at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
       at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
       at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)


      Also I think I should be able to see the webservice-ref in the JNDI using JMXConsole -> JNDIView, but neither server displays the webservice-refs there, why? How could I see which JNDI name the webservice-refs are bound to?

      I have also tried adding "name" and "mappedName" attributes to the WebServiceRef annotation and using the same value as service-ref-name, without success.