Freeman,
the following is incoming message which i am printing out for debugging
## Received exchange with status ACTIVE: InOut[
id: ID:192.168.2.86-11ea5a60951-7:0
status: Active
role: provider
service: {http://ekaplus.com/contract}createContractDataMapper
endpoint: endpointDM
in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ekaplus.com/contract" xmlns:xsd
="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="createContractRequest" type="msg:createContractRequest" version="1.0"
><jbi:part><com:Contract
xmlns:com="com.ekaplus.v7.cotton.physical.contract">
<com:UserContext
xmlns:com="com.ekaplus.v7.cotton.physical.contract">
<UserName xmlns="">?</UserName>
<CoportateId xmlns="">?</CoportateId>
</com:UserContext>
<com:Header xmlns:com="com.ekaplus.v7.cotton.physical.contract">
<ContractNo xmlns="">?</ContractNo>
<Type xmlns="">?</Type>
</com:Header>
<com:Data xmlns:com="com.ekaplus.v7.cotton.physical.contract">
<com:ContractDetails
xmlns:com="com.ekaplus.v7.cotton.physical.contract">
<com:ContractIssueDate
xmlns:com="com.ekaplus.v7.cotton.physical.contract">?</com:ContractIssueDate>
<com:BookId
xmlns:com="com.ekaplus.v7.cotton.physical.contract">?</com:BookId>
<!--Optional:-->
<com:TraderId
xmlns:com="com.ekaplus.v7.cotton.physical.contract">?</com:TraderId>
<!--Optional:-->
<com:OurPersonInChargeId
xmlns:com="com.ekaplus.v7.cotton.physical.contract">?</com:OurPersonInChargeId>
<com:CPId xmlns:com="com.ekaplus.v...
]
and wsdl as follows
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:eka="http://ekaplus.com/contract"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="contract" targetNamespace="http://ekaplus.com/contract"
xmlns:xsd1="com.ekaplus.v7.cotton.physical.contract"
xmlns:xsd2="http://www.ekaplus.com/integration/common/document/return">
<wsdl:types>
<xsd:schema targetNamespace="http://ekaplus.com/contract">
<xsd:element name="createContract">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="createContractResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import
namespace="http://www.ekaplus.com/integration/common/document/return"
schemaLocation="ReturnDocument.xsd">
</xsd:import>
<xsd:import
namespace="com.ekaplus.v7.cotton.physical.contract"
schemaLocation="contract.xsd">
</xsd:import></xsd:schema></wsdl:types>
<wsdl:message name="createContractRequest">
<wsdl:part element="xsd1:Contract" name="parameters"/>
</wsdl:message>
<wsdl:message name="createContractResponse">
<wsdl:part element="xsd2:ReturnDocument" name="parameters"/>
</wsdl:message>
<wsdl:portType name="contract">
<wsdl:operation name="createContract">
<wsdl:input message="eka:createContractRequest"/>
<wsdl:output message="eka:createContractResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="contractSOAP" type="eka:contract">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="createContract">
<soap:operation soapAction="http://ekaplus.com/contract/NewOperation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="createContractService">
<wsdl:port binding="eka:contractSOAP" name="createContractService">
<soap:address location="http://localhost:8092/ContractService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
thanks ,
Brijesh N K
Freeman Fang wrote:
>
> Hi,
>
> You need know what's the outgoing jbi message looks like based on your
> wsdl and transform your message accordingly.
> In your work flow, I believe you can see the incoming jbi message in
> the log, would you please append it with your wsdl, so that I can tell
> what's the outgoing message should be.
>
> Freeman
>
>
> brijesh wrote:
>> Freeman,
>>
>> I am getting the mapping data from a db, eg:
>> I have few elements in incoming xml <product_id> prod001</product_id>
>> which
>> I need to replace as
>> <product_id>pr001</product_id> , and this mapping is done in a mapping
>> table. using servicemix-bean i am calling database and replacing the
>> element
>> data and passing it another servicemix-bean which calls an
>> ejbs method.
>> After replacing the xml elements I am sending the content to another bean
>> which is configured through EIP
>> static-routing-slip,
>>
>> code for setting content as follows
>>
>> InOut inOut = (InOut)exchange;
>> NormalizedMessage normalizedMessage = inOut.getInMessage();
>> //String outMessage = processXml(normalizedMessage); //this method will
>> substitute element from database.
>> String outMessage ="<sample>this is sample xml</sample>";
>> normalizedMessage.setContent(new StringSource(outMessage));
>> MessageUtil.transferInToOut(inOut, inOut);
>> channel.send(inOut);
>>
>> Wondering how to i convert it into jbi message so that i will not get the
>> error as i mentioned before
>>
>>
>> thanks for the help
>>
>> Brijesh
>>
>>
>>
>> Freeman Fang wrote:
>>
>>> Hi,
>>> If you just want to replace some content of the incoming message and
>>> return, how about you use servicemix-camel instead of the
>>> servicemix-bean?
>>> There shouldn't be marshalling/unmarshalling for your case IMO, just
>>> replace the message.
>>> You should know the format of incoming and outgoing message.
>>>
>>> And yes, the servicemix-cxf-se will do the marshalling/unmarshalling
>>> for you based on the wsdl model, but it's always used for real object
>>> invocation, not suitable for your scenario.
>>>
>>> Freeman
>>>
>>> brijesh wrote:
>>>
>>>> Freeman,
>>>>
>>>> thanks for the response,
>>>>
>>>> As i mentioned previous post, I am sending back the response from my
>>>> servicemix-bean class. Wondering how do I transform according to wsdl
>>>> model,
>>>>
>>>> or should i use different jbi component instead of servicemix-bean so
>>>> that
>>>> , i can convert easily???
>>>> I am using bean component to replace incoming data from database. for
>>>> marshalling/unmarshalling am using xmlbean .
>>>>
>>>> will it solves if use servicemix-cxf-se instead servicemix-bean to do
>>>> the
>>>> transformation according to the wsdl model??
>>>>
>>>> thanks
>>>>
>>>> Brijesh N K
>>>>
>>>>
>>>>
>>>> Freeman Fang wrote:
>>>>
>>>>
>>>>> Hi,
>>>>> There is no simple way to do it, since the soap binding message or jbi
>>>>> binding message are based on the wsdl, you need do the transform
>>>>> according to the wsdl model.
>>>>> Freeman
>>>>>
>>>>> brijesh wrote:
>>>>>
>>>>>
>>>>>> Hi Freeman,
>>>>>>
>>>>>> thanks for the response
>>>>>>
>>>>>> i need to send a return message as "<sample>this is sample
>>>>>> xml</sample>"
>>>>>> from servicemix-bean to client through servicemix-bc,
>>>>>>
>>>>>> following is code snippet for this
>>>>>>
>>>>>> .......................
>>>>>> InOut inOut = (InOut)exchange;
>>>>>> NormalizedMessage normalizedMessage =
>>>>>> inOut.getInMessage();
>>>>>> //String outMessage = processXml(normalizedMessage);
>>>>>>
>>>>>> String outMessage ="<sample>this is sample
>>>>>> xml</sample>";
>>>>>> normalizedMessage.setContent(new
>>>>>> StringSource(outMessage));
>>>>>> MessageUtil.transferInToOut(inOut, inOut);
>>>>>> channel.send(inOut);
>>>>>>
>>>>>> ..................
>>>>>>
>>>>>> is there any utility in MessageUtil to convert this plan xml content
>>>>>> to
>>>>>> soap
>>>>>> binding message or jbi binding message????
>>>>>>
>>>>>>
>>>>>> regards
>>>>>>
>>>>>> Brijesh N K
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Freeman Fang wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Cxf bc expect soap binding message or jbi binding message, but the
>>>>>>> message "<sample>this is sample xml</sample>" from your bean is
>>>>>>> invalid
>>>>>>> for the cxf bc.
>>>>>>>
>>>>>>> Freeman
>>>>>>>
>>>>>>> brijesh wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> hello,
>>>>>>>>
>>>>>>>> I am calling servicemix-bean through cxf-bc, but i am getting soap
>>>>>>>> fault
>>>>>>>> as
>>>>>>>> follows
>>>>>>>>
>>>>>>>> <soap:Envelope
>>>>>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>>>>>>>> <soap:Body>
>>>>>>>> <soap:Fault>
>>>>>>>> <faultcode>soap:Server</faultcode>
>>>>>>>> <faultstring>Message wrapper element is '{}sample' but
>>>>>>>> expected
>>>>>>>> '{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'</faultstring>
>>>>>>>> </soap:Fault>
>>>>>>>> </soap:Body>
>>>>>>>> </soap:Envelope>
>>>>>>>>
>>>>>>>>
>>>>>>>> code for service-bean as follows
>>>>>>>>
>>>>>>>> public class ContractSchemaDataMapper implements
>>>>>>>> MessageExchangeListener
>>>>>>>> {
>>>>>>>>
>>>>>>>> @Resource
>>>>>>>> private DeliveryChannel channel;
>>>>>>>> private static final Log logger =
>>>>>>>> LogFactory.getLog(ContractSchemaDataMapper.class);
>>>>>>>>
>>>>>>>> public void onMessageExchange(MessageExchange exchange) throws
>>>>>>>> MessagingException {
>>>>>>>>
>>>>>>>> if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
>>>>>>>> logger.debug("## Received exchange with status ACTIVE:
>>>>>>>> " +
>>>>>>>> exchange);
>>>>>>>> System.out.println("## Received exchange with status
>>>>>>>> ACTIVE:
>>>>>>>> "
>>>>>>>> +
>>>>>>>> exchange);
>>>>>>>> InOut inOut = (InOut)exchange;
>>>>>>>> NormalizedMessage normalizedMessage =
>>>>>>>> inOut.getInMessage();
>>>>>>>> //String outMessage = processXml(normalizedMessage);
>>>>>>>>
>>>>>>>> String outMessage ="<sample>this is sample
>>>>>>>> xml</sample>";
>>>>>>>> normalizedMessage.setContent(new
>>>>>>>> StringSource(outMessage));
>>>>>>>> MessageUtil.transferInToOut(inOut, inOut);
>>>>>>>> channel.send(inOut);
>>>>>>>> } else{
>>>>>>>> logger.debug("## Received exchange but status not
>>>>>>>> ACTIVE: " +
>>>>>>>> exchange);
>>>>>>>> }
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>> and the stack trace as follows
>>>>>>>>
>>>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>>>> org.apache.cxf.interceptor.Fault: Message wrapper element is
>>>>>>>> '{}sample'
>>>>>>>> but
>>>>>>>> expected '{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
>>>>>>>> at
>>>>>>>> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:103)
>>>>>>>> at
>>>>>>>> org.apache.servicemix.cxfbc.interceptors.JbiOutWsdl1Interceptor.handleMessage(JbiOutWsdl1Interceptor.java:62)
>>>>>>>> at
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>>>>>>>> at
>>>>>>>> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74)
>>>>>>>> at
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>>>>>>>> at
>>>>>>>> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:77)
>>>>>>>> at
>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:278)
>>>>>>>> at
>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:252)
>>>>>>>> at
>>>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:757)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>>>>>>> at org.mortbay.jetty.Server.handle(Server.java:324)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:840)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:657)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
>>>>>>>> at
>>>>>>>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:377)
>>>>>>>> at
>>>>>>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>>>>>>>> at
>>>>>>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:497)
>>>>>>>> Caused by: java.lang.Exception: Message wrapper element is
>>>>>>>> '{}sample'
>>>>>>>> but
>>>>>>>> expected '{http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper}message'
>>>>>>>> ... 21 more
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Any idea on this ,
>>>>>>>>
>>>>>>>> regards
>>>>>>>>
>>>>>>>> Brijesh N K
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
>
--
View this message in context:
http://www.nabble.com/expected-%27%7Bhttp%3A--java.sun.com-xml-ns-jbi-wsdl-11-wrapper%7Dmessage-tp21276728p21286620.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.