jboss.xml wsdl-override works with one JBoss version, but no
jimpo Sep 29, 2008 7:39 AMI 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.