ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » wsdl 2.0 support in wmb toolkit 6

Post new topic  Reply to topic Goto page Previous  1, 2
 wsdl 2.0 support in wmb toolkit 6 « View previous topic :: View next topic » 
Author Message
pathipati
PostPosted: Sun Jan 28, 2007 4:49 pm    Post subject: Reply with quote

Master

Joined: 03 Mar 2006
Posts: 296

http://www.redbooks.ibm.com/redbooks/SG246583/wwhelp/wwhimpl/java/html/wwhelp.htm
Section 4.6.2 may help you in building SOAP message inside compute node..
Back to top
View user's profile Send private message Yahoo Messenger
hdjur
PostPosted: Sun Jan 28, 2007 11:42 pm    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Thank you pathipati.
Back to top
View user's profile Send private message
hdjur
PostPosted: Mon Jan 29, 2007 2:26 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

I used that example code, so that I built envelope in LocalEnvironment tree (from Figure 4-31 ESQL for the Compute node (1) ), and then I tried to use that envelope to wrap body, which is created in mapping node, and contained in the Root tree. I still have a problem with configuring SOAPEnvelope node, with attribute "Existing envelope node". What exactly do I have to put there? I have tried with:

$LocalEnvironment.XMLNS.mySoapNS:Envelope

With this setting, nothing is logged in error log, but still SOAPEnvelope node directs output to failure terminal. Before that, errors were logged.

In a compute node I have written:
Code:

      SET OutputRoot.Properties = InputRoot.Properties; 

      -- Create an HTTP header for the message      
      SET OutputLocalEnvironment.HTTPRequestHeader.SOAPAction = ''; 

      -- Declare the XML namespaces we will be using      
      DECLARE mySoapNS NAMESPACE    'http://schemas.xmlsoap.org/soap/envelope/';      
      DECLARE myNS1 NAMESPACE 'http://tempuri.org/scenario.customer.AccessTrackerEJB';      
      DECLARE myXSI NAMESPACE 'http://www.w3.org/2001/XMLSchema-instance';      
      DECLARE myXSD NAMESPACE 'http://www.w3.org/2001/XMLSchema'; 

      -- Add an XML declaration to the message      
      SET OutputLocalEnvironment.XMLNS.(XML.XmlDecl) = '';      
      SET OutputLocalEnvironment.XMLNS.(XML.XmlDecl).(XML.Version) = '1.0';      
      SET OutputLocalEnvironment.XMLNS.(XML.XmlDecl).(XML.Encoding) = 'UTF-8'; 

      -- Create the SOAP Envelope      
      SET OutputLocalEnvironment.XMLNS.mySoapNS:Envelope.(XML.NamespaceDecl)xmlns:"SOAP-ENV" = 'http://schemas.xmlsoap.org/soap/envelope/' ;      
      SET OutputLocalEnvironment.XMLNS.mySoapNS:Envelope.(XML.NamespaceDecl)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance' ;      
      SET OutputLocalEnvironment.XMLNS.mySoapNS:Envelope.(XML.NamespaceDecl)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema' ;
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Mon Jan 29, 2007 2:29 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Did you create OutputLocalEnvironment.XMNLS with the XMLNS parser attached to it?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
hdjur
PostPosted: Mon Jan 29, 2007 3:25 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Do you mean something like this create command:
Code:

      -- Copy the Properties folder across      
      SET OutputRoot.Properties = InputRoot.Properties; 

      -- Create an HTTP header for the message      
      SET OutputLocalEnvironment.HTTPRequestHeader.SOAPAction = ''; 
      CREATE NEXTSIBLING OF OutputLocalEnvironment.HTTPRequestHeader domain 'XMLNS';

      -- Declare the XML namespaces we will be using      
      DECLARE mySoapNS NAMESPACE    'http://schemas.xmlsoap.org/soap/envelope/';      
      DECLARE myNS1 NAMESPACE 'http://tempuri.org/scenario.customer.AccessTrackerEJB';      
      DECLARE myXSI NAMESPACE 'http://www.w3.org/2001/XMLSchema-instance';      
      DECLARE myXSD NAMESPACE 'http://www.w3.org/2001/XMLSchema'; 

      -- Add an XML declaration to the message      
      SET OutputLocalEnvironment.XMLNS.(XML.XmlDecl) = '';      
      SET OutputLocalEnvironment.XMLNS.(XML.XmlDecl).(XML.Version) = '1.0';      
      SET OutputLocalEnvironment.XMLNS.(XML.XmlDecl).(XML.Encoding) = 'UTF-8'; 

      -- Create the SOAP Envelope      
      SET OutputLocalEnvironment.XMLNS.mySoapNS:Envelope.(XML.NamespaceDecl)xmlns:"SOAP-ENV" = 'http://schemas.xmlsoap.org/soap/envelope/' ;      
      SET OutputLocalEnvironment.XMLNS.mySoapNS:Envelope.(XML.NamespaceDecl)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance' ;      
      SET OutputLocalEnvironment.XMLNS.mySoapNS:Envelope.(XML.NamespaceDecl)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema' ; 



With or without that, $LocalEnvironment is after mapping node, before SOAPEnvelope node like this:
local env is (
(0x01000000):HTTPRequestHeader = (
(0x03000000):SOAPAction = ''
)
(0x01000000):XMLNS = (
(0x05000018): = (
(0x06000011): = '1.0'
(0x06000012): = 'UTF-8'
)
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x07000012)xmlns:SOAP-ENV = 'http://schemas.xmlsoap.org/soap/envelope/'
(0x07000012)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance'
(0x07000012)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema'
)
)
(0x01000000):LOCAL_STACK = (
(0x01000000):instanceNumber =
(0x01000000):iteration =
(0x01000000):SOURCE_STACK = (
(0x01000000):nestingLevel =
(0x01000000):occurrence =
(0x01000000):sourceLiteral =
(0x01000000):domain =
)
(0x01000000):condition =
(0x01000000):fn_sum =
(0x01000000):is_atom =
(0x03000000):expression = 12345678
)
(0x01000000):sourceParserDomain =
(0x03000000):targetParserDomain = 'MRM'
(0x03000000):tree_state = 3
(0x01000000):GLOBAL_STACK = (
(0x01000000):frame =
(0x03000000):frameDepth = 0
)
)

LOCAL_STACK, sourceParserDomain, targetParserDomain are set after mapping node. In a compute node I created only HTTPRequestHeader and Envelope (under XMLNS). Output message set was in MRM domain, that is I used to create body in MRM domain. Now I changed it to XMLNS, but still I get this: targetParserDomain = 'MRM'
And it does not help. Shall I add another compute node after mapping node to correct this setting?
Back to top
View user's profile Send private message
kimbert
PostPosted: Mon Jan 29, 2007 7:09 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5543
Location: Southampton

Quote:
With this setting, nothing is logged in error log, but still SOAPEnvelope node directs output to failure terminal. Before that, errors were logged
What were the errors?
Back to top
View user's profile Send private message
hdjur
PostPosted: Tue Jan 30, 2007 1:11 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Errors were various, depending on the SOAPEnvelope node settings.
For example:

Jan 28 01:28:37 hrambtest user:err|error WebSphere Broker v6003[823446]: (WBRK.default)[5673]BIP4367E: The method 'evaluate' in Java node 'SOAPEnvelope' has thrown the following exception: java.lang.RuntimeException: The location identified by the XPath expression "/g/g/org/xmlsoap/schemas/soap/envelope" does not exist. : WBRK.f9cdf9a0-0f01-0000-0080-929af9708d91: /build/S600_P/src/DataFlowEngine/PluginInterface/com_ibm_broker_plugin_CMbService.cpp: 1631: ImbJavaExceptionUtils::throwableToNativeException: :
Jan 28 01:39:54 hrambtest user:err|error WebSphere Broker v6003[823446]: (WBRK.default)[5673]BIP4367E: The method 'evaluate' in Java node 'SOAPEnvelope' has thrown the following exception: java.lang.RuntimeException: The location identified by the XPath expression "$LocalEnvironment/SOAP/Envelope" does not exist. : WBRK.f9cdf9a0-0f01-0000-0080-929af9708d91: /build/S600_P/src/DataFlowEngine/PluginInterface/com_ibm_broker_plugin_CMbService.cpp: 1631: ImbJavaExceptionUtils::throwableToNativeException: :
Jan 28 12:51:31 hrambtest user:warn|warning WebSphere Broker v6003[823446]: (WBRK.default)[5673]BIP4388W: XPath: The variable '{LocalEnvironment.SOAP.Envelope}' is not bound to a value. : WBRK.f9cdf9a0-0f01-0000-0080-929af9708d91: /build/S600_P/src/DataFlowEngine/PluginInterface/ImbXPathEngine.cpp: 685: ImbXPathEngine::evaluateExpression: :
Jan 29 09:53:36 hrambtest user:warn|warning WebSphere Broker v6003[823446]: (WBRK.default)[5673]BIP4388W: XPath: The variable '{LocalEnvironment}' is not bound to a value. : WBRK.f9cdf9a0-0f01-0000-0080-929af9708d91: /build/S600_P/src/DataFlowEngine/PluginInterface/ImbXPathEngine.cpp: 685: ImbXPathEngine::evaluateExpression: :
Jan 29 10:07:19 hrambtest user:err|error WebSphere Broker v6003[823446]: (WBRK.default)[5673]BIP4367E: The method 'evaluate' in Java node 'SOAPEnvelope' has thrown the following exception: java.lang.RuntimeException: The location identified by the XPath expression "$LocalEnvironment/XMLNS/'http://schemas.xmlsoap.org/soap/envelope/':Envelope" does not exist. : WBRK.f9cdf9a0-0f01-0000-0080-929af9708d91: /build/S600_P/src/DataFlowEngine/PluginInterface/com_ibm_broker_plugin_CMbService.cpp: 1631: ImbJavaExceptionUtils::throwableToNativeException: :


I have succeeded to make SOAPEnvelope work only this way:

Create new envelope = checked
Existing envelope location = $LocalEnvironment/XMLNS

I have simplified the flow to the maximum possible extent: by removing compute and mapping node, setting parser on the MQInput node to XMLNS, and by putting xml input data from example IA9O on input queue.
In this case, input data were wrapped with some predefined default soap envelope. I have identified further remaining problems which I don't know how to solve:
1. How to create our own customized soap envelope with our namespace definitions, automaticaly, using data from imported wsdl?
2. If I write ESQL in compute node as previously described for soap envelope creation, how to reference succesfully this LocalEnvironment xpath location from SOAPEnvelope node, considering namespaces on this xpath?
3. How to ensure creation of soap body in XMLNS domain, in mapping node? I have set target message set to XMLNS, but I still got MRM in output root after mapping.
4. How can I create soap body wrapped with soap envelope using only mapping node? (That is my original question in this topic.)
Back to top
View user's profile Send private message
hdjur
PostPosted: Fri Feb 02, 2007 3:55 am    Post subject: Reply with quote

Centurion

Joined: 16 Sep 2004
Posts: 116
Location: Zagreb

Key to understanding of my problem was that I was forced to do some work without prior extensive study of the tool, using which I was supposed to do that work.
Simple import directive in a soapenv11.mxsd would allow me to add BT to a soap envelope in a message model.
After that simple flow consisting only of mapping node and a http request node (not exactly only of them) would do. Still I wonder why wsdl import does not do all that (import directive, adding messages to a soap envelope) automatically?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » wsdl 2.0 support in wmb toolkit 6
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.