You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by lekkie <le...@gmail.com> on 2009/08/11 10:17:30 UTC
JMS SU: server's Publish Address is null
When servicemix deploys my SU, it shows the ffg:
Aug 11, 2009 8:22:55 AM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be null
Aug 11, 2009 8:22:55 AM org.apache.cxf.transport.jms.JMSDestination activate
INFO: JMSServerTransport activate()....
Subsequently, if I send an message (attachment) to the consumer SU from a
cxfclient, I get the following error message on ServiceMIX
INFO: run the incoming message in the threadpool
Aug 11, 2009 8:23:49 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
Message(ReadHeadersInterceptor.java:183)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
Message(ReadHeadersInterceptor.java:54)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:220)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
ationObserver.java:78)
at
org.apache.cxf.transport.jms.JMSDestination.incoming(JMSDestination.j
ava:209)
at
org.apache.cxf.transport.jms.JMSDestination$JMSExecutor.run(JMSDestin
ation.java:352)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
character '-
' (code 45) in prolog; expected '<'
at [row,col {unknown-source}]: [2,1]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:
623)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.ja
va:2047)
at
com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
at
com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1095
)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
Message(ReadHeadersInterceptor.java:83)
... 8 more
Aug 11, 2009 8:23:49 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.UnsupportedOperationException: A destination must be specified.
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:195)
at
org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java
:133)
at
org.apache.cxf.transport.jms.JMSDestination$JMSOutputStream.sendRespo
nse(JMSDestination.java:528)
at
org.apache.cxf.transport.jms.JMSDestination$JMSOutputStream.commitOut
putMessage(JMSDestination.java:473)
at
org.apache.cxf.transport.jms.JMSDestination$JMSOutputStream.doClose(J
MSDestination.java:547)
at
org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:16
7)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:6
6)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndi
ngInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:220)
at
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMess
age(AbstractFaultChainInitiatorObserver.java:96)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:260)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
ationObserver.java:78)
at
org.apache.cxf.transport.jms.JMSDestination.incoming(JMSDestination.j
ava:209)
at
org.apache.cxf.transport.jms.JMSDestination$JMSExecutor.run(JMSDestin
ation.java:352)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
at java.lang.Thread.run(Thread.java:595)
Aug 11, 2009 8:30:08 AM
org.apache.cxf.transport.jms.JMSDestination$JMSExecutor
run
INFO: run the incoming message in the threadpool
Aug 11, 2009 8:30:08 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
Message(ReadHeadersInterceptor.java:183)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
Message(ReadHeadersInterceptor.java:54)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:220)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
ationObserver.java:78)
at
org.apache.cxf.transport.jms.JMSDestination.incoming(JMSDestination.j
ava:209)
at
org.apache.cxf.transport.jms.JMSDestination$JMSExecutor.run(JMSDestin
ation.java:352)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
character '-
' (code 45) in prolog; expected '<'
at [row,col {unknown-source}]: [2,1]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:
623)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.ja
va:2047)
at
com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
at
com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1095
)
at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
Message(ReadHeadersInterceptor.java:83)
... 8 more
Aug 11, 2009 8:30:08 AM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.UnsupportedOperationException: A destination must be specified.
at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
cer.java:195)
at
org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java
See client code below:
ISServicesPortType mtomPort = createPort(MTOM_SERVICE, MTOM_PORT,
ISServicesPortType.class, true);
try {
InputStream pre =
this.getClass().getResourceAsStream("isServices.wsdl");
int fileSize = 0;
for (int i = pre.read(); i != -1; i = pre.read()) {
fileSize++;
}
Holder<DataHandler> param = new Holder<DataHandler>();
int count = 50;
byte[] data = new byte[fileSize * count];
for (int x = 0; x < count; x++) {
this.getClass().getResourceAsStream("isServices.wsdl").read(data, fileSize *
x, fileSize);
}
param.value = new DataHandler(new ByteArrayDataSource(data,
"application/octet-stream"));
Holder<String> name = new Holder<String>("call detail");
is.services.types.ISBinaryType _sendAttachment_data = new
ISBinaryType();
_sendAttachment_data.setAttachinfo(param.value);
_sendAttachment_data.setName(name.value);
mtomPort.sendAttachment(_sendAttachment_data);
// Assert.fail("Expect the exception here !");
// Assert.assertEquals("name unchanged", "return detail + call
detail", name.value);
// Assert.assertNotNull(param.value);
param.value.getInputStream().close();
} catch (SOAPFaultException ex) {
Assert.assertTrue("Expect the configuration exception here",
ex.getCause() instanceof
org.apache.cxf.configuration.ConfigurationException);
}
private static <T> T createPort(QName serviceName, QName portName, Class<T>
serviceEndpointInterface, boolean enableMTOM) throws Exception
{
Bus bus = BusFactory.getDefaultBus();
ReflectionServiceFactoryBean serviceFactory = new
JaxWsServiceFactoryBean();
serviceFactory.setBus(bus);
serviceFactory.setServiceName(serviceName);
serviceFactory.setServiceClass(serviceEndpointInterface);
URL url = ISServicesPortType.class.getResource("isServices.wsdl");
serviceFactory.setWsdlURL(url);
Service service = serviceFactory.create();
EndpointInfo ei = service.getEndpointInfo(portName);
JaxWsEndpointImpl jaxwsEndpoint = new JaxWsEndpointImpl(bus, service, ei);
SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding());
jaxWsSoapBinding.setMTOMEnabled(enableMTOM);
jaxwsEndpoint.getBinding().getInInterceptors().add(new
TestMultipartMessageInterceptor());
jaxwsEndpoint.getBinding().getOutInterceptors().add(new
TestAttachmentOutInterceptor());
Client client = new ClientImpl(bus, jaxwsEndpoint);
InvocationHandler ih = new JaxWsClientProxy(client,
jaxwsEndpoint.getJaxwsBinding());
Object obj =
Proxy.newProxyInstance(serviceEndpointInterface.getClassLoader(), new
Class[] {
serviceEndpointInterface, BindingProvider.class }, ih);
return serviceEndpointInterface.cast(obj);
}
--
View this message in context: http://www.nabble.com/JMS-SU%3A-server%27s-Publish-Address-is-null-tp24913559p24913559.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: JMS SU: server's Publish Address is null
Posted by Freeman Fang <fr...@gmail.com>.
Hi,
As I answered to you in another related thread, you need send cxf bc
consumer over jms transport a mtom enabled SOAP message(so that
include the attachment with soap message),
you can't send cxf bc consumer an attachment only, it must be a soap
message (with mtom attachment).
Btw, the log
> INFO: Setting the server's publish address to be null
is expected here for jms transport.
Freeman
On 2009-8-11, at 下午4:17, lekkie wrote:
>
> When servicemix deploys my SU, it shows the ffg:
>
> Aug 11, 2009 8:22:55 AM org.apache.cxf.endpoint.ServerImpl
> initDestination
> INFO: Setting the server's publish address to be null
> Aug 11, 2009 8:22:55 AM org.apache.cxf.transport.jms.JMSDestination
> activate
> INFO: JMSServerTransport activate()....
>
>
> Subsequently, if I send an message (attachment) to the consumer SU
> from a
> cxfclient, I get the following error message on ServiceMIX
>
> INFO: run the incoming message in the threadpool
> Aug 11, 2009 8:23:49 AM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
>
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
> at
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
> Message(ReadHeadersInterceptor.java:183)
> at
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
> Message(ReadHeadersInterceptor.java:54)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> orChain.java:220)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
> ationObserver.java:78)
> at
> org.apache.cxf.transport.jms.JMSDestination.incoming(JMSDestination.j
> ava:209)
> at
> org.apache.cxf.transport.jms.JMSDestination$JMSExecutor.run(JMSDestin
> ation.java:352)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
> character '-
> ' (code 45) in prolog; expected '<'
> at [row,col {unknown-source}]: [2,1]
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:
> 623)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.ja
> va:2047)
> at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1095
> )
> at
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
> Message(ReadHeadersInterceptor.java:83)
> ... 8 more
> Aug 11, 2009 8:23:49 AM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.UnsupportedOperationException: A destination must be
> specified.
> at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:195)
> at
> org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java
> :133)
> at
> org.apache.cxf.transport.jms.JMSDestination$JMSOutputStream.sendRespo
> nse(JMSDestination.java:528)
> at
> org.apache.cxf.transport.jms.JMSDestination$JMSOutputStream.commitOut
> putMessage(JMSDestination.java:473)
> at
> org.apache.cxf.transport.jms.JMSDestination$JMSOutputStream.doClose(J
> MSDestination.java:547)
> at
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:16
> 7)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:6
> 6)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndi
> ngInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> orChain.java:220)
> at
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMess
> age(AbstractFaultChainInitiatorObserver.java:96)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> orChain.java:260)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
> ationObserver.java:78)
> at
> org.apache.cxf.transport.jms.JMSDestination.incoming(JMSDestination.j
> ava:209)
> at
> org.apache.cxf.transport.jms.JMSDestination$JMSExecutor.run(JMSDestin
> ation.java:352)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
> at java.lang.Thread.run(Thread.java:595)
> Aug 11, 2009 8:30:08 AM
> org.apache.cxf.transport.jms.JMSDestination$JMSExecutor
> run
> INFO: run the incoming message in the threadpool
> Aug 11, 2009 8:30:08 AM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
> at
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
> Message(ReadHeadersInterceptor.java:183)
> at
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
> Message(ReadHeadersInterceptor.java:54)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
> orChain.java:220)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
> ationObserver.java:78)
> at
> org.apache.cxf.transport.jms.JMSDestination.incoming(JMSDestination.j
> ava:209)
> at
> org.apache.cxf.transport.jms.JMSDestination$JMSExecutor.run(JMSDestin
> ation.java:352)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
> character '-
> ' (code 45) in prolog; expected '<'
> at [row,col {unknown-source}]: [2,1]
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:
> 623)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.ja
> va:2047)
> at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1095
> )
> at
> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handle
> Message(ReadHeadersInterceptor.java:83)
> ... 8 more
> Aug 11, 2009 8:30:08 AM org.apache.cxf.phase.PhaseInterceptorChain
> doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> java.lang.UnsupportedOperationException: A destination must be
> specified.
> at
> org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProdu
> cer.java:195)
> at
> org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java
>
>
>
> See client code below:
>
> ISServicesPortType mtomPort = createPort(MTOM_SERVICE, MTOM_PORT,
> ISServicesPortType.class, true);
> try {
> InputStream pre =
> this.getClass().getResourceAsStream("isServices.wsdl");
> int fileSize = 0;
> for (int i = pre.read(); i != -1; i = pre.read()) {
> fileSize++;
> }
> Holder<DataHandler> param = new Holder<DataHandler>();
>
> int count = 50;
> byte[] data = new byte[fileSize * count];
> for (int x = 0; x < count; x++) {
>
> this.getClass().getResourceAsStream("isServices.wsdl").read(data,
> fileSize *
> x, fileSize);
> }
>
> param.value = new DataHandler(new ByteArrayDataSource(data,
> "application/octet-stream"));
> Holder<String> name = new Holder<String>("call detail");
> is.services.types.ISBinaryType _sendAttachment_data = new
> ISBinaryType();
> _sendAttachment_data.setAttachinfo(param.value);
> _sendAttachment_data.setName(name.value);
> mtomPort.sendAttachment(_sendAttachment_data);
> // Assert.fail("Expect the exception here !");
> // Assert.assertEquals("name unchanged", "return detail +
> call
> detail", name.value);
> // Assert.assertNotNull(param.value);
> param.value.getInputStream().close();
>
> } catch (SOAPFaultException ex) {
> Assert.assertTrue("Expect the configuration exception here",
> ex.getCause() instanceof
> org.apache.cxf.configuration.ConfigurationException);
> }
>
> private static <T> T createPort(QName serviceName, QName portName,
> Class<T>
> serviceEndpointInterface, boolean enableMTOM) throws Exception
> {
> Bus bus = BusFactory.getDefaultBus();
> ReflectionServiceFactoryBean serviceFactory = new
> JaxWsServiceFactoryBean();
> serviceFactory.setBus(bus);
> serviceFactory.setServiceName(serviceName);
> serviceFactory.setServiceClass(serviceEndpointInterface);
> URL url = ISServicesPortType.class.getResource("isServices.wsdl");
> serviceFactory.setWsdlURL(url);
> Service service = serviceFactory.create();
> EndpointInfo ei = service.getEndpointInfo(portName);
> JaxWsEndpointImpl jaxwsEndpoint = new JaxWsEndpointImpl(bus,
> service, ei);
> SOAPBinding jaxWsSoapBinding = new SOAPBindingImpl(ei.getBinding());
> jaxWsSoapBinding.setMTOMEnabled(enableMTOM);
>
> jaxwsEndpoint.getBinding().getInInterceptors().add(new
> TestMultipartMessageInterceptor());
> jaxwsEndpoint.getBinding().getOutInterceptors().add(new
> TestAttachmentOutInterceptor());
>
> Client client = new ClientImpl(bus, jaxwsEndpoint);
> InvocationHandler ih = new JaxWsClientProxy(client,
> jaxwsEndpoint.getJaxwsBinding());
> Object obj =
> Proxy.newProxyInstance(serviceEndpointInterface.getClassLoader(), new
> Class[] {
> serviceEndpointInterface, BindingProvider.class }, ih);
> return serviceEndpointInterface.cast(obj);
> }
>
>
>
> --
> View this message in context: http://www.nabble.com/JMS-SU%3A-server%27s-Publish-Address-is-null-tp24913559p24913559.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com