When a Destination receives a message at processStreamIo method
ex:
protected void processStreamIo(IoSession session, InputStream in,
OutputStream out) {
final MessageImpl m = new MessageImpl();
final Exchange exchange = new ExchangeImpl();
exchange.setDestination(MyDestination.this);
m.setDestination(MyDestination.this);
exchange.setInMessage(m);
m.setContent(InputStream.class, in);
out = new UDPDestinationOutputStream(out);
m.put(UDPConnectionInfo.class, new UDPConnectionInfo(session,
out, in));
queue.execute(new Runnable() {
public void run() {
//Here, i want to sent this m message to an
orther Destination
}
});
}
2015-11-24 12:19 GMT+01:00 Aki Yoshida <[email protected]>:
> If you want to receive a message and route it to somewhere else based
> on the content, one typical approach is to Apache Camel
> (http://camel.apache.org) which supports all kinds of endpoints
> including CXF and also various processing steps. In this case, your
> application is a simple Camel route with a CXF consumer endpoint
> (from) and a CXF producer endpoint (to).
>
> The question of whether to use the generic dispatch/provider API or
> not depends on what kind of messages you want to process. Using the
> generic API, you can send and receive arbitrary messages. But you need
> to read and set the message content using some generic XML API. In
> contrast, using the specifically typed API, you can automatically
> restrict the structure of the message and read and set the structure
> using its convenient get/setter methods.
>
> regards, aki
>
> 2015-11-23 18:04 GMT+01:00 tho huynh ngoc <[email protected]>:
> > I would like to send a message received by my owns Destination (side A)
> to
> > another one (side B) (for approving my research problem). I don't know
> if i
> > can use jax-ws-dispatch-api ?
> >
> > Regards,
> >
> >
> > 2015-11-20 10:49 GMT+01:00 Aki Yoshida <[email protected]>:
> >
> >> i don't think you can send a Message instance that way.
> >> But why do you need to send it out from your application that way?
> >>
> >> If you just need to send and receive a generic message, you can use
> >> the jaxws dispatcher/provider approach.
> >> http://cxf.apache.org/docs/jax-ws-dispatch-api.html
> >> http://cxf.apache.org/docs/provider-services.html
> >>
> >>
> >> 2015-11-19 15:17 GMT+01:00 tho huynh ngoc <[email protected]>:
> >> > Hi,
> >> >
> >> > I want to send an org.apache.cxf.message.Message object via CXF
> Jax-ws.
> >> For
> >> > example:
> >> >
> >> > 1.
> >> >
> >> > A service declared:
> >> >
> >> > @WebServicepublic interface HelloWorld {
> >> > void send(Message msg);}
> >> >
> >> > 2.
> >> >
> >> > Implementation of this service:
> >> >
> >> > public class HelloWorldImpl implements HelloWorld {
> >> > public void send(Message msg) {
> >> > System.out.println("receives msg id:"
> >> +((MessageImpl)msg).getId());
> >> > }}
> >> >
> >> > 3.
> >> >
> >> > Server:
> >> >
> >> > HelloWorldImpl implementor = new
> >> > HelloWorldImpl();JaxWsServerFactoryBean svrFactory1 = new
> >> > JaxWsServerFactoryBean();
> >> > svrFactory1.setServiceClass(HelloWorld.class);
> >> > svrFactory1.setAddress("http://192.168.56.1:9000/HelloWorld");
> >> > svrFactory1.setServiceBean(implementor);
> >> > org.apache.cxf.endpoint.Server server1 = svrFactory1.create();
> >> > server1.start();
> >> >
> >> > 4.
> >> >
> >> > Client:
> >> >
> >> > JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
> >> > factory.setAddress("http://192.168.56.1:9000/HelloWorld
> ");HelloWorld
> >> > client = factory.create(HelloWorld.class);Message msg = new
> >> > MessageImpl();
> >> > msg.setId("abc");
> >> > client.send(msg);
> >> >
> >> >
> >> > I receive an error when running as follows:
> >> >
> >> > Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Fault
> >> > occurred while processing.
> >> > at
> >> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:160)
> >> > at com.sun.proxy.$Proxy37.sayHiToUser(Unknown Source)
> >> > at objecttype.Client.main(Client.java:60)
> >> >
> >> > Caused by: org.apache.cxf.binding.soap.SoapFault: Fault occurred while
> >> > processing........
> >> >
> >> > How to correct this error ? the pojo class that i want to send in CXF:
> >> > org.apache.cxf.message.MessageImpl
> >> >
> >> > Regards,
> >>
>