[esb-java-user] invoking websphere service

Indika Kumara indika at wso2.com
Tue Dec 23 00:32:30 PST 2008


Hi Remsy

You can do a simple xslt transformation using xslt script like as bellow

 

xsl:stylesheet version="2.0"

            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

            xmlns:fn="http://www.w3.org/2005/02/xpath-functions"

            xmlns:m0="http://ws.apache.org/commons/ns/payload"

            exclude-result-prefixes="m0 fn">

<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>

 

<xsl:template match="/">

  <xsl:apply-templates select="//m0:text" />

</xsl:template>

 

<xsl:template match="m0:text">

 

<ws:processMessage xmlns:ws="http://ws.remsy.ca/">

            <ws:msgIn>

           <xsl:value-of select="."/>

    </ws:msgIn>

</ws:processMessage>

 

</xsl:template>

</xsl:stylesheet>

 

 

And thing you need to know, it is possible to change the wrapping outer 
element name adding parameter to service ( or proxy service) which used 
to listen JMS ,Mail , VFS .

 

<parameter name="Wrapper">{namespace URI}wrapper element name</parameter>

For example:

<parameter name="Wrapper">{http://services.samples 
<http://services.samples>}getQuote</parameter>

Sample 252 uses demonstrates this

And simple custom mediator that deals with payload too work for you.


Thanks
Indika

 


Schmilinsky, Remsy wrote:
> Here is another sample, obtained from SoapUI tool:
>
> POST http://localhost:9080/testWS/services/Test HTTP/1.1
> Content-Type: text/xml;charset=UTF-8
> SOAPAction: ""
> User-Agent: Jakarta Commons-HttpClient/3.1
> Host: localhost:9080
> Content-Length: 275
>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:ws="http://ws.remsy.ca">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ws:processMessage>
>          <ws:msgIn>message text</ws:msgIn>
>       </ws:processMessage>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> Where "message text" comes from JMS, so how can I modify the message
> context to construct a request like this to the soap endpoint? Need to
> add any parameters? 
>
> Thanks
>
> Remsy
>
> -----Original Message-----
> From: Schmilinsky, Remsy 
> Sent: December 22, 2008 10:14 AM
> To: 'esb-java-user at wso2.org'
> Subject: RE: [esb-java-user] invoking websphere service
>
> Hi Paul, the request should look like this:
>
> <?xml version="1.0" encoding="UTF-8" ?> 
> <soapenv:Envelope xmlns:q0="http://ws.remsy.ca"
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <soapenv:Body>
> <q0:processMessage>
> <msgIn>some text...</msgIn> 
> </q0:processMessage>
> </soapenv:Body>
> </soapenv:Envelope>
>
>
> -----Original Message-----
> From: esb-java-user-bounces at wso2.org
> [mailto:esb-java-user-bounces at wso2.org] On Behalf Of Paul Fremantle
> Sent: December 19, 2008 10:28 AM
> To: esb-java-user at wso2.org
> Subject: Re: [esb-java-user] invoking websphere service
>
> Remsy
>
> It looks like you are trying to link an ESB file or JMS text service 
> with a WSDL defined endpoint.
>
> When you read files, JMS or other non-XML data into the ESB we logically
>
> create a SOAP envelope to handle that data. Usually that never leaves 
> the ESB, because typically you would either transform it into XML or 
> store it in another file. But you are sending it on to a Web Service, 
> which is expecting some other XML format. You need to transform this 
> using a mediator or E4X, XSL etc.
>
> If you give me some better ideas about what you are doing I can maybe 
> help some more.
>
> Paul
>
> Schmilinsky, Remsy wrote:
>   
>> Hi, I have an endpoint with a simple web service deployed on
>>     
> websphere.
>   
>> I get a soap fault saying "Could not resolve to an operation.  The
>> message contains an element named
>> ""{http://ws.apache.org/commons/ns/payload}text"", but this does not
>> match any operation of the target port.
>>
>> Endpoint is configured like this:
>>
>> <syn:endpoint name="testWS">
>>         <syn:address uri="http://localhost:9080/testWS/services/Test"
>> format="soap11">
>>             <enableAddressing/>
>>         </syn:address>
>> </syn:endpoint>
>>
>> Do you know how to resolve this? Below is the full response:
>>
>> <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>
>>     
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><soapenv:Body>
>   
> <soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>WSWS327
>   
>> 7E: Error: Could not resolve to an operation.  The message contains an
>> element named ""{http://ws.apache.org/commons/ns/payload}text"", but
>> this does not match any operation of the target port. Debug: name:
>> services/Test
>> implClass:       class ca.remsy.test.Test
>> implClassLoader: 
>> com.ibm.ws.classloader.CompoundClassLoader at 6b1c6b1c
>>    Local ClassPath: C:\Documents and
>>
>>     
> Settings\remsy\IBM\rationalsdp7.0\workspace\testWS\WebContent\WEB-INF\cl
>   
>> asses;C:\Documents and
>> Settings\remsy\IBM\rationalsdp7.0\workspace\testWS\WebContent
>>    Delegation Mode: PARENT_FIRST
>> defaultNS:       null
>> endpointURL:     null
>>  OperationDesc[0]:
>>   name:        processMessage
>>   returnQName: processMessageReturn
>>   returnType:  {http://www.w3.org/2001/XMLSchema}string
>>   returnClass: class java.lang.String
>>   elementQName:{http://test.remsy.ca}processMessage
>>   soapAction:  processMessage
>>   style:       wrapped
>>   use:         literal
>>   numInParams: 1
>>   properties: 
>>    KEY(ResponseNamespace)
>>     VALUE(http://test.remsy.ca)
>>    KEY(ResponseLocalPart)
>>     VALUE(processMessageResponse)
>>    KEY(buildNum)
>>     VALUE(cf90721.10)
>>    KEY(ServiceQName)
>>     VALUE({http://test.remsy.ca}TestService)
>>    KEY(portTypeQName)
>>     VALUE({http://test.remsy.ca}Test)
>>    KEY(outputName)
>>     VALUE(processMessageResponse)
>>    KEY(inputMessageQName)
>>     VALUE({http://test.remsy.ca}processMessageRequest)
>>    KEY(outputMessageQName)
>>     VALUE({http://test.remsy.ca}processMessageResponse)
>>    KEY(usingAddressing)
>>     VALUE(false)
>>    KEY(inputName)
>>     VALUE(processMessageRequest)
>>    KEY(targetNamespace)
>>     VALUE(http://test.remsy.ca)
>>   method:public java.lang.String
>> ca.remsy.test.Test.processMessage(java.lang.String)
>>    ParameterDesc[0]:
>>     identity:
>> com.ibm.ws.webservices.engine.description.ParameterDesc at cec0cec
>>   name:       msg
>>   mode:       IN
>>   isReturn:   false
>>   typeQName:  {http://www.w3.org/2001/XMLSchema}string
>>   javaType:   class java.lang.String
>>   javaSigType:class java.lang.String
>>   inHeader:   false
>>   outHeader:  false
>>   minOccursIs0:false
>>   maxOccursIs1:true
>>   properties: 
>>    KEY(partName)
>>     VALUE(string)
>>    KEY(partQNameString)
>>     VALUE({http://www.w3.org/2001/XMLSchema}string)
>>
>>
>> </faultstring></soapenv:Fault></soapenv:Body></soapenv:Envelope>
>>
>>
>>
>> _______________________________________________
>> Esb-java-user mailing list
>> Esb-java-user at wso2.org
>> https://wso2.org/cgi-bin/mailman/listinfo/esb-java-user
>>
>>     
>
>   
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG - http://www.avg.com 
> Version: 8.0.176 / Virus Database: 270.10.0/1861 - Release Date: 12/22/2008 11:23 AM
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://wso2.org/pipermail/esb-java-user/attachments/20081223/48e8f889/attachment-0001.htm 


More information about the Esb-java-user mailing list