ESB webservice call problem
adorandish Mar 5, 2009 9:14 PMHi,
I deployed a webservice with the following code to jboss:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.cayenta.webservices; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; /** * * @author dorand */ @WebService(name="ExternalEmployee") @SOAPBinding(style = SOAPBinding.Style.RPC) public class ExternalEmployee { /** * Web service operation */ @WebMethod(operationName = "getEmployeeName") public String getEmployeeName(@WebParam(name = "message") String message) { //TODO write your implementation code here: return "Alex ("+message+")"; } }
then I consumed it with ESB like:
<?xml version="1.0"?> <jbossesb parameterReloadSecs="5" xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"> <providers> <jms-provider connection-factory="ConnectionFactory" name="JBossMQ"> <jms-bus busid="cayentaEmployeeEsbChannel"> <jms-message-filter dest-name="queue/CayentaEmployeeEsbChannel" dest-type="QUEUE"/> </jms-bus> </jms-provider> <jbr-provider name="CayentaEsbHttpProvider" protocol="http"> <jbr-bus busid="CayentaEsbChannel" port="8765"/> </jbr-provider> </providers> <services> <service category="Cayenta" description="Cayensta ESB" name="CayentaEmployee"> <listeners> <jms-listener busidref="cayentaEmployeeEsbChannel" name="JMS-ESBListener"/> <jbr-listener busidref="CayentaEsbChannel" is-gateway="true" name="CayentaEsbHttpListener"/> </listeners> <actions mep="OneWay"> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="print-before"> <property name="message" value="[Quickstart_webservice_producer] BEFORE invoking jbossws endpoint"/> </action> <action class="org.jboss.soa.esb.actions.soap.SOAPClient" name="ExternalWsInESB"> <property name="wsdl" value="http://localhost:8080/ExternalWS/ExternalEmployee?wsdl"/> <property name="operation" value="getEmployeeName"/> <property name="SOAPAction" value="getEmployeeName"/> </action> <action class="org.jboss.soa.esb.actions.SystemPrintln" name="print-after"> <property name="message" value="[Quickstart_webservice_producer] AFTER invoking jbossws endpoint"/> </action> <action class="org.jboss.soa.esb.actions.TestMessageStore" name="testStore"/> </actions> </service> </services> </jbossesb>
then I looked at the contract page and I see:
Cayenta:CayentaEmployee Cayensta ESB HTTP * Endpoint: http://dorands-macbook-pro.local:8765 * Contract: http://localhost:8080/contract/contract.jsp?serviceCat=Cayenta&serviceName=CayentaEmployee&protocol=http JMS * Endpoint: jms://localhost:1099/queue/CayentaEmployeeEsbChannel * Contract: http://localhost:8080/contract/contract.jsp?serviceCat=Cayenta&serviceName=CayentaEmployee&protocol=jms
then I used the following to generate client web service:
http://localhost:8080/contract/contract.jsp?serviceCat=Cayenta&serviceName=CayentaEmployee&protocol=http
When I call the web service I see:
18:06:06,819 INFO [STDOUT] [Quickstart_webservice_producer] BEFORE invoking jbossws endpoint: 18:06:06,821 INFO [STDOUT] [<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:getEmployeeName xmlns:ns2="http://webservices.cayenta.com/"> <message/> </ns2:getEmployeeName> </S:Body> </S:Envelope> ]. 18:06:06,823 WARN [ActionProcessingPipeline] No fault address defined for fault message! To: JMSEpr [ PortReference < <wsa:Address jms://localhost:1099/queue/CayentaEmployeeEsbChannel/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] ReplyTo: JMSEpr [ PortReference < <wsa:Address jms://localhost:1099/queue/CayentaEmployeeEsbChannel_reply/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:message-selector : jbossESBresponseUUID='3d48d400-6a6f-49aa-a706-23a843ae85f7'/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] MessageID: ba5bfa40-9dd9-4c50-98d7-f6b3faf32009 RelatesTo: jms:correlationID#ba5bfa40-9dd9-4c50-98d7-f6b3faf32009 18:06:26,820 INFO [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms://localhost:1099/queue/CayentaEmployeeEsbChannel/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : localhost:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ ] 18:06:26,820 INFO [ServiceInvoker] Badly formed EPR [EPR: PortReference < <wsa:Address http://dorands-macbook-pro.local:8765/> >] for Service [Cayenta:CayentaEmployee] and Message [header: [ ]].Courier for EPR not supported: ESB-unaware EPR used! 18:06:26,821 INFO [ServiceInvoker] Delivering message [header: [ ]] to DLQ. 18:06:26,843 ERROR [JBossRemotingGatewayListener] JBoss Remoting Gateway failed to synchronously deliver message to target service [Cayenta:CayentaEmployee]. org.jboss.soa.esb.listeners.message.MessageDeliverException: Failed to deliver message [header: [ ]] to Service [Cayenta:CayentaEmployee]. Check for errors. at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:414) at org.jboss.soa.esb.client.ServiceInvoker.deliverSync(ServiceInvoker.java:213) at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSyncWithoutDecomposing(UncomposedMessageDeliveryAdapter.java:107) at org.jboss.soa.esb.listeners.message.UncomposedMessageDeliveryAdapter.deliverSync(UncomposedMessageDeliveryAdapter.java:86) at org.jboss.soa.esb.listeners.gateway.JBossRemotingGatewayListener.invoke(JBossRemotingGatewayListener.java:352) at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:809) at org.jboss.remoting.transport.coyote.CoyoteInvoker.service(CoyoteInvoker.java:310) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:613)