File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
A friendly place for programming greenhorns!
Big Moose Saloon
Search
|
Java FAQ
|
Recent Topics
Register / Login
Win a copy of
The Mikado Method
this week in the
Agile and other Processes
forum!
JavaRanch
»
Java Forums
»
Java
»
EJB and other Java EE Technologies
Author
soap over jms query
vik ar
Ranch Hand
Joined: Jul 31, 2009
Posts: 104
posted
Oct 09, 2012 10:58:05
0
Hi. I am looking into soap over jms. My query is does the client have to be a
java
implementation?
Ulf Dittmer
Marshal
Joined: Mar 22, 2005
Posts: 35241
7
posted
Oct 09, 2012 12:54:59
0
Depends on the messaging software you're using. JMS implies Java, but if it supports other client libraries, then you're in business.
Android apps
–
ImageJ plugins
–
Java web charts
vik ar
Ranch Hand
Joined: Jul 31, 2009
Posts: 104
posted
Oct 12, 2012 08:12:55
0
I am having troubling implementing soap over jms on
Jboss
AS7.
My wsdl is as follows
<?xml version='1.0' encoding='UTF-8'?> <wsdl:definitions name="HelloWorldService" targetNamespace="http://org.jboss.ws/jaxws/cxf/jms" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://org.jboss.ws/jaxws/cxf/jms" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapjms="http://www.w3.org/2010/soapjms/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xs:schema elementFormDefault="unqualified" targetNamespace="http://org.jboss.ws/jaxws/cxf/jms" version="1.0" xmlns:tns="http://org.jboss.ws/jaxws/cxf/jms" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="echo" type="tns:echo" /> <xs:element name="echoResponse" type="tns:echoResponse" /> <xs:complexType name="echo"> <xs:sequence> <xs:element minOccurs="0" name="arg0" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="echoResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="echoResponse"> <wsdl:part element="tns:echoResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="echo"> <wsdl:part element="tns:echo" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="HelloWorld"> <wsdl:operation name="echo"> <wsdl:input message="tns:echo" name="echo"> </wsdl:input> <wsdl:output message="tns:echoResponse" name="echoResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloWorldServiceSoapBinding" type="tns:HelloWorld"> <soap:binding style="rpc" transport="http://cxf.apache.org/transports/jms" /> <wsdl:operation name="echo"> <soap:operation soapAction="" style="document" /> <wsdl:input name="echo"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="echoResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloWorldService"> <wsdl:port binding="tns:HelloWorldServiceSoapBinding" name="HelloWorldImplPort"> <soap:address location=""/> </wsdl:port> </wsdl:service> </wsdl:definitions>
server side spring config:
<jaxws:endpoint id="helloWorldService" address="jms://" implementor="#helloWorldServiceImpl"> <jaxws:features> <bean class="org.apache.cxf.transport.jms.JMSConfigFeature" p:jmsConfig-ref="jmsConfig" /> </jaxws:features> </jaxws:endpoint> <bean id="jmsConfig" class="org.apache.cxf.transport.jms.JMSConfiguration" p:connectionFactory-ref="connectionFactory" p:targetDestination="testQueue" p:replyDestination="testQueue" /> <jee:jndi-lookup id="connectionFactory" jndi-name="java:/ConnectionFactory" /> <bean id="helloWorldServiceImpl" class="com.atosorigin.service.maths.HelloWorldImpl" />
HelloWorldImpl.java
package com.atosorigin.service.maths; import javax.jws.WebService; import ws.jboss.org.jaxws.cxf.jms.HelloWorld; @WebService(serviceName = "HelloWorldService", portName = "HelloWorldImplPort", wsdlLocation = "classpath:wsdl/SoapOverJms.wsdl", endpointInterface = "ws.jboss.org.jaxws.cxf.jms.HelloWorld", targetNamespace = "http://org.jboss.ws/jaxws/cxf/jms") public class HelloWorldImpl implements HelloWorld { public String echo(String input) { return input; } }
When I fire off a soap message at the queue I get the following stack trace with the warning happening repeatedly until I kill JBOSS
15:04:55,196 INFO [org.jboss.as.naming] (Remoting "uk015376" task-4) JBAS011806: Channel end notification received, closing channel Channel ID 47bf5883 (inbound) of Remoting connection 5f4fb8cd to /127.0.0.1:58701 15:04:55,383 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (DefaultMessageListenerContainer-1) Interceptor for {http://org.jboss.ws/jaxws/cxf/jms}HelloWorldService has thrown exception, unwinding now: org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader. at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:237) [cxf-rt-bindings-soap.jar:2.4.6] at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:60) [cxf-rt-bindings-soap.jar:2.4.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api.jar:2.4.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:228) [cxf-rt-transports-jms.jar:2.4.6] at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) [spring-jms.jar:3.0.6.RELEASE] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05] Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 't' (code 116) in prolog; expected '<' at [row,col {unknown-source}]: [1,1] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:639) at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2017) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1102) at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1125) at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:138) [cxf-rt-bindings-soap.jar:2.4.6] ... 13 more 15:04:55,633 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (DefaultMessageListenerContainer-1) Interceptor for {http://org.jboss.ws/jaxws/cxf/jms}HelloWorldService has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Message part {http://schemas.xmlsoap.org/soap/envelope/}Fault was not recognized. (Does it exist in service WSDL?) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:197) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api.jar:2.4.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:228) [cxf-rt-transports-jms.jar:2.4.6] at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) [spring-jms.jar:3.0.6.RELEASE] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05] 15:04:55,742 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (DefaultMessageListenerContainer-1) Interceptor for {http://org.jboss.ws/jaxws/cxf/jms}HelloWorldService has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Message part {http://schemas.xmlsoap.org/soap/envelope/}Fault was not recognized. (Does it exist in service WSDL?) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:197) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api.jar:2.4.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:228) [cxf-rt-transports-jms.jar:2.4.6] at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) [spring-jms.jar:3.0.6.RELEASE] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05] 15:04:55,868 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (DefaultMessageListenerContainer-1) Interceptor for {http://org.jboss.ws/jaxws/cxf/jms}HelloWorldService has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Message part {http://schemas.xmlsoap.org/soap/envelope/}Fault was not recognized. (Does it exist in service WSDL?) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:197) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api.jar:2.4.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:228) [cxf-rt-transports-jms.jar:2.4.6] at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) [spring-jms.jar:3.0.6.RELEASE] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05] 15:04:55,961 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (DefaultMessageListenerContainer-1) Interceptor for {http://org.jboss.ws/jaxws/cxf/jms}HelloWorldService has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Message part {http://schemas.xmlsoap.org/soap/envelope/}Fault was not recognized. (Does it exist in service WSDL?) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:197) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api.jar:2.4.6] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core.jar:2.4.6] at org.apache.cxf.transport.jms.JMSDestination.onMessage(JMSDestination.java:228) [cxf-rt-transports-jms.jar:2.4.6] at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) [spring-jms.jar:3.0.6.RELEASE] at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) [spring-jms.jar:3.0.6.RELEASE] at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_05]
I agree. Here's the link:
http://ej-technologies/jprofiler
- if it wasn't for jprofiler, we would need to run our stuff on 16 servers instead of 3.
subject: soap over jms query
Similar Threads
SOAP JMS
Web serivces are great!
Is it possible to have my replyqueue configured on different JMS server from request queue?
SOAP with other protocols other than HTTP
JMS and Firewalls
All times are in JavaRanch time: GMT-6 in summer, GMT-7 in winter