Need a Little Help on Dynamic PLs

View: New views
9 Messages — Rating Filter:   Alert me  

Need a Little Help on Dynamic PLs

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hopefully this is a simple question because I seen to be very, very close to the setup I'd like.  I'm placing endpoint data in a literal in the BPEL for now, until I get it formed correctly.  However, I'm getting "BPJBI-6019:unable to resolve the service endpoint dynamically for the document fragment".  It seem correct to me though...

He are some sections of the BPEL, Assign9 contains the addressing information assigned to a variable and the variable is later used select a PL.  Is there a namespace incorrect in my literal XML in assign9?  If I can get this right, I can move the addressing to the input.  But I'm out of ideas.

Thanks!

...
    xmlns:ns0="http://www.iwsinc.com/preaction" xmlns:ns1="http://www.iwsinc.com/preactionresponse"
    xmlns:ns2="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap" xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:ns4="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0" xmlns:ns5="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
    <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap" location="CMSPreActionSoap.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0" location="CMSPreActionEJB0.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <partnerLinks>
        <partnerLink name="CMSPreActionEJB0PL" xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0" partnerLinkType="tns:CMSPreActionEJB0" partnerRole="CMSPreActionEJB0PortTypeRole"/>
        <partnerLink name="CMSPreActionSoapPL" xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap" partnerLinkType="tns:CMSPreActionSoap" myRole="CMSPreActionSoapPortTypeRole"/>
    </partnerLinks>
    <variables>
        <variable name="EPR" element="ns2:EPR"/>
...
                <assign name="Assign9">
                    <copy>
                        <from>
                            <literal><ns3:EndpointReference>
<ns3:Address>http://localhost:8080/CMSPreActionEJB0Service/CMSPreActionEJB0</ns3:Address>
<ns3:ServiceName PortName="CMSPreActionEJB0Port">ns4:CMSPreActionEJB0Service</ns3:ServiceName>
</ns3:EndpointReference></literal>
                        </from>
                        <to>$EPR/ns3:EndpointReference</to>
                    </copy>
                </assign>
...
                <assign name="Assign7">
                    <copy>
                        <from variable="EPR"/>
                        <to partnerLink="CMSPreActionEJB0PL"/>
                    </copy>
                </assign>
...
                <invoke name="Invoke2" partnerLink="CMSPreActionEJB0PL" operation="CMSPreActionEJB0Operation" xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0" portType="tns:CMSPreActionEJB0PortType" inputVariable="CMSPreActionEJBCustomOperationIn" outputVariable="CMSPreActionEJBCustomOperationOut"/>

This is the WSDL used in the PL:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="CMSPreActionEJB0" targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0" xmlns:ns0="http://www.iwsinc.com/preactionresponse" xmlns:ns="http://www.iwsinc.com/preaction" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <types>
        <xsd:schema targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0">
            <xsd:import namespace="http://www.iwsinc.com/preaction" schemaLocation="CMSPreAction.xsd"/>
            <xsd:import namespace="http://www.iwsinc.com/preactionresponse" schemaLocation="CMSPreActionResponse.xsd"/>
        </xsd:schema>
    </types>
    <message name="CMSPreActionEJB0OperationRequest">
        <part name="part1" element="ns:CMSPreAction"/>
    </message>
    <message name="CMSPreActionEJB0OperationResponse">
        <part name="part1" element="ns0:CMSPreActionResponse"/>
    </message>
    <portType name="CMSPreActionEJB0PortType">
        <operation name="CMSPreActionEJB0Operation">
            <input name="input1" message="tns:CMSPreActionEJB0OperationRequest"/>
            <output name="output1" message="tns:CMSPreActionEJB0OperationResponse"/>
        </operation>
    </portType>
    <binding name="CMSPreActionEJB0Binding" type="tns:CMSPreActionEJB0PortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="CMSPreActionEJB0Operation">
            <soap:operation/>
            <input name="input1">
                <soap:body use="literal"/>
            </input>
            <output name="output1">
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="CMSPreActionEJB0Service">
        <port name="CMSPreActionEJB0Port" binding="tns:CMSPreActionEJB0Binding">
            <soap:address location="http://localhost:${HttpDefaultPort}/CMSPreActionEJB0Service/CMSPreActionEJB0Port"/>
        </port>
    </service>
    <plnk:partnerLinkType name="CMSPreActionEJB0">
        <!-- A partner link type is automatically generated when a new port type is added. Partner link types are used by BPEL processes.
In a BPEL process, a partner link represents the interaction between the BPEL process and a partner service. Each partner link is associated with a partner link type.
A partner link type characterizes the conversational relationship between two services. The partner link type can have one or two roles.-->
        <plnk:role name="CMSPreActionEJB0PortTypeRole" portType="tns:CMSPreActionEJB0PortType"/>
    </plnk:partnerLinkType>
</definitions>


Re: Need a Little Help on Dynamic PLs

by Kiran Bhumana-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Where is your "ns2:EPR" definition? I didn't find it below. Referred by,

<variable name="EPR" element="ns2:EPR"/>

Can you use the attached example to see if it helps you? The attached
example was written so that it will be added to the sample BPEL projects
of NB. Provide suggestions so that the sample can be improved.
If the sample doesn't help at all in your case, one of us can look at
your specific case and debug it.

- Kiran B.

jsexton0 wrote:

> Hopefully this is a simple question because I seen to be very, very close to
> the setup I'd like.  I'm placing endpoint data in a literal in the BPEL for
> now, until I get it formed correctly.  However, I'm getting
> "BPJBI-6019:unable to resolve the service endpoint dynamically for the
> document fragment".  It seem correct to me though...
>
> He are some sections of the BPEL, Assign9 contains the addressing
> information assigned to a variable and the variable is later used select a
> PL.  Is there a namespace incorrect in my literal XML in assign9?  If I can
> get this right, I can move the addressing to the input.  But I'm out of
> ideas.
>
> Thanks!
>
> ...
>     xmlns:ns0="http://www.iwsinc.com/preaction"
> xmlns:ns1="http://www.iwsinc.com/preactionresponse"
>     xmlns:ns2="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
> xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/08/addressing"
>     xmlns:ns4="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> xmlns:ns5="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
>     <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
> location="CMSPreActionSoap.wsdl"
> importType="http://schemas.xmlsoap.org/wsdl/"/>
>     <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> location="CMSPreActionEJB0.wsdl"
> importType="http://schemas.xmlsoap.org/wsdl/"/>
>     <partnerLinks>
>         <partnerLink name="CMSPreActionEJB0PL"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> partnerLinkType="tns:CMSPreActionEJB0"
> partnerRole="CMSPreActionEJB0PortTypeRole"/>
>         <partnerLink name="CMSPreActionSoapPL"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
> partnerLinkType="tns:CMSPreActionSoap"
> myRole="CMSPreActionSoapPortTypeRole"/>
>     </partnerLinks>
>     <variables>
>         <variable name="EPR" element="ns2:EPR"/>
> ...
>                 <assign name="Assign9">
>                     <copy>
>                         <from>
>                             <literal><ns3:EndpointReference>
> <ns3:Address>http://localhost:8080/CMSPreActionEJB0Service/CMSPreActionEJB0</ns3:Address>
> <ns3:ServiceName
> PortName="CMSPreActionEJB0Port">ns4:CMSPreActionEJB0Service</ns3:ServiceName>
> </ns3:EndpointReference></literal>
>                         </from>
>                         <to>$EPR/ns3:EndpointReference</to>
>                     </copy>
>                 </assign>
> ...
>                 <assign name="Assign7">
>                     <copy>
>                         <from variable="EPR"/>
>                         <to partnerLink="CMSPreActionEJB0PL"/>
>                     </copy>
>                 </assign>
> ...
>                 <invoke name="Invoke2" partnerLink="CMSPreActionEJB0PL"
> operation="CMSPreActionEJB0Operation"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> portType="tns:CMSPreActionEJB0PortType"
> inputVariable="CMSPreActionEJBCustomOperationIn"
> outputVariable="CMSPreActionEJBCustomOperationOut"/>
>
> This is the WSDL used in the PL:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions name="CMSPreActionEJB0"
> targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
>     xmlns="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> xmlns:ns0="http://www.iwsinc.com/preactionresponse"
> xmlns:ns="http://www.iwsinc.com/preaction"
> xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
>     <types>
>         <xsd:schema
> targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0">
>             <xsd:import namespace="http://www.iwsinc.com/preaction"
> schemaLocation="CMSPreAction.xsd"/>
>             <xsd:import namespace="http://www.iwsinc.com/preactionresponse"
> schemaLocation="CMSPreActionResponse.xsd"/>
>         </xsd:schema>
>     </types>
>     <message name="CMSPreActionEJB0OperationRequest">
>         <part name="part1" element="ns:CMSPreAction"/>
>     </message>
>     <message name="CMSPreActionEJB0OperationResponse">
>         <part name="part1" element="ns0:CMSPreActionResponse"/>
>     </message>
>     <portType name="CMSPreActionEJB0PortType">
>         <operation name="CMSPreActionEJB0Operation">
>             <input name="input1"
> message="tns:CMSPreActionEJB0OperationRequest"/>
>             <output name="output1"
> message="tns:CMSPreActionEJB0OperationResponse"/>
>         </operation>
>     </portType>
>     <binding name="CMSPreActionEJB0Binding"
> type="tns:CMSPreActionEJB0PortType">
>         <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>         <operation name="CMSPreActionEJB0Operation">
>             <soap:operation/>
>             <input name="input1">
>                 <soap:body use="literal"/>
>             </input>
>             <output name="output1">
>                 <soap:body use="literal"/>
>             </output>
>         </operation>
>     </binding>
>     <service name="CMSPreActionEJB0Service">
>         <port name="CMSPreActionEJB0Port"
> binding="tns:CMSPreActionEJB0Binding">
>             <soap:address
> location="http://localhost:${HttpDefaultPort}/CMSPreActionEJB0Service/CMSPreActionEJB0Port"/>
>         </port>
>     </service>
>     <plnk:partnerLinkType name="CMSPreActionEJB0">
>         <!-- A partner link type is automatically generated when a new port
> type is added. Partner link types are used by BPEL processes.
> In a BPEL process, a partner link represents the interaction between the
> BPEL process and a partner service. Each partner link is associated with a
> partner link type.
> A partner link type characterizes the conversational relationship between
> two services. The partner link type can have one or two roles.-->
>         <plnk:role name="CMSPreActionEJB0PortTypeRole"
> portType="tns:CMSPreActionEJB0PortType"/>
>     </plnk:partnerLinkType>
> </definitions>
>
>
>  
--
Kiran Bhumana
Open ESB Community (http://open-esb.org)



DynamicPartnerSample.zip (280K) Download Attachment

Re: Need a Little Help on Dynamic PLs

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello -

Yes, I have studied this example carefully (as well as a few others), for a couple of days now.  What I want to do is to use an XSD with the address data included in normal strings, in addition to other data, as my input, rather than directly assign to the EPR variable.  In the final application, the address could then be driven by the other content.  Then I can assign that address data to the ESB variable included in the BPEL's WSDL and go from there.

Even if I derive something from this example, I still have to get the correct data to it.  This is why I thought my question might be simple.  I must have an error in the namespaces of the port or service?

Thanks, and thanks for your example also.  It was extremely helpful in getting started.  But now I'm rather stuck.

Regarding the "ns2:EPR" variable...  Here is the first bit of the WSDL providing the entry point to the BPEL:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="CMSPreActionSoap"
    targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap" xmlns:ns0="http://www.iwsinc.com/preactionresponse" xmlns:ns="http://www.iwsinc.com/preaction" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <types>
        <xsd:schema targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap">
            <xsd:import namespace="http://www.iwsinc.com/preactionresponse" schemaLocation="CMSPreActionResponse.xsd"/>
            <xsd:import namespace="http://www.iwsinc.com/preaction" schemaLocation="CMSPreAction.xsd"/>
            <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" schemaLocation="schemas.xmlsoap.org/ws/2004/08/addressing.xsd" />
            <xsd:element name="EPR">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element ref="wsa:EndpointReference" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </types>
    <message name="CMSPreActionSoapOperationRequest">
        <part name="part1" element="ns:CMSPreAction"/>
    </message>
...

This seems to all work ok, in that it tries to find the endpoint.  I do all the assignments I need, it's simply that the values of the service or port must be wrong.  I know the address is correct since it's easy to test with a quick http request.

Kiran Bhumana-2 wrote:
Where is your "ns2:EPR" definition? I didn't find it below. Referred by,

<variable name="EPR" element="ns2:EPR"/>

Can you use the attached example to see if it helps you? The attached
example was written so that it will be added to the sample BPEL projects
of NB. Provide suggestions so that the sample can be improved.
If the sample doesn't help at all in your case, one of us can look at
your specific case and debug it.

- Kiran B.

jsexton0 wrote:
> Hopefully this is a simple question because I seen to be very, very close to
> the setup I'd like.  I'm placing endpoint data in a literal in the BPEL for
> now, until I get it formed correctly.  However, I'm getting
> "BPJBI-6019:unable to resolve the service endpoint dynamically for the
> document fragment".  It seem correct to me though...
>
> He are some sections of the BPEL, Assign9 contains the addressing
> information assigned to a variable and the variable is later used select a
> PL.  Is there a namespace incorrect in my literal XML in assign9?  If I can
> get this right, I can move the addressing to the input.  But I'm out of
> ideas.
>
> Thanks!
>
> ...
>     xmlns:ns0="http://www.iwsinc.com/preaction"
> xmlns:ns1="http://www.iwsinc.com/preactionresponse"
>     xmlns:ns2="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
> xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/08/addressing"
>     xmlns:ns4="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> xmlns:ns5="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
>     <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
> location="CMSPreActionSoap.wsdl"
> importType="http://schemas.xmlsoap.org/wsdl/"/>
>     <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> location="CMSPreActionEJB0.wsdl"
> importType="http://schemas.xmlsoap.org/wsdl/"/>
>     <partnerLinks>
>         <partnerLink name="CMSPreActionEJB0PL"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> partnerLinkType="tns:CMSPreActionEJB0"
> partnerRole="CMSPreActionEJB0PortTypeRole"/>
>         <partnerLink name="CMSPreActionSoapPL"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
> partnerLinkType="tns:CMSPreActionSoap"
> myRole="CMSPreActionSoapPortTypeRole"/>
>     </partnerLinks>
>     <variables>
>         <variable name="EPR" element="ns2:EPR"/>
> ...
>                 <assign name="Assign9">
>                     <copy>
>                         <from>
>                             <literal><ns3:EndpointReference>
> <ns3:Address>http://localhost:8080/CMSPreActionEJB0Service/CMSPreActionEJB0</ns3:Address>
> <ns3:ServiceName
> PortName="CMSPreActionEJB0Port">ns4:CMSPreActionEJB0Service</ns3:ServiceName>
> </ns3:EndpointReference></literal>
>                         </from>
>                         <to>$EPR/ns3:EndpointReference</to>
>                     </copy>
>                 </assign>
> ...
>                 <assign name="Assign7">
>                     <copy>
>                         <from variable="EPR"/>
>                         <to partnerLink="CMSPreActionEJB0PL"/>
>                     </copy>
>                 </assign>
> ...
>                 <invoke name="Invoke2" partnerLink="CMSPreActionEJB0PL"
> operation="CMSPreActionEJB0Operation"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> portType="tns:CMSPreActionEJB0PortType"
> inputVariable="CMSPreActionEJBCustomOperationIn"
> outputVariable="CMSPreActionEJBCustomOperationOut"/>
>
> This is the WSDL used in the PL:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions name="CMSPreActionEJB0"
> targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
>     xmlns="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
> xmlns:ns0="http://www.iwsinc.com/preactionresponse"
> xmlns:ns="http://www.iwsinc.com/preaction"
> xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
>     <types>
>         <xsd:schema
> targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0">
>             <xsd:import namespace="http://www.iwsinc.com/preaction"
> schemaLocation="CMSPreAction.xsd"/>
>             <xsd:import namespace="http://www.iwsinc.com/preactionresponse"
> schemaLocation="CMSPreActionResponse.xsd"/>
>         </xsd:schema>
>     </types>
>     <message name="CMSPreActionEJB0OperationRequest">
>         <part name="part1" element="ns:CMSPreAction"/>
>     </message>
>     <message name="CMSPreActionEJB0OperationResponse">
>         <part name="part1" element="ns0:CMSPreActionResponse"/>
>     </message>
>     <portType name="CMSPreActionEJB0PortType">
>         <operation name="CMSPreActionEJB0Operation">
>             <input name="input1"
> message="tns:CMSPreActionEJB0OperationRequest"/>
>             <output name="output1"
> message="tns:CMSPreActionEJB0OperationResponse"/>
>         </operation>
>     </portType>
>     <binding name="CMSPreActionEJB0Binding"
> type="tns:CMSPreActionEJB0PortType">
>         <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>         <operation name="CMSPreActionEJB0Operation">
>             <soap:operation/>
>             <input name="input1">
>                 <soap:body use="literal"/>
>             </input>
>             <output name="output1">
>                 <soap:body use="literal"/>
>             </output>
>         </operation>
>     </binding>
>     <service name="CMSPreActionEJB0Service">
>         <port name="CMSPreActionEJB0Port"
> binding="tns:CMSPreActionEJB0Binding">
>             <soap:address
> location="http://localhost:${HttpDefaultPort}/CMSPreActionEJB0Service/CMSPreActionEJB0Port"/>
>         </port>
>     </service>
>     <plnk:partnerLinkType name="CMSPreActionEJB0">
>         <!-- A partner link type is automatically generated when a new port
> type is added. Partner link types are used by BPEL processes.
> In a BPEL process, a partner link represents the interaction between the
> BPEL process and a partner service. Each partner link is associated with a
> partner link type.
> A partner link type characterizes the conversational relationship between
> two services. The partner link type can have one or two roles.-->
>         <plnk:role name="CMSPreActionEJB0PortTypeRole"
> portType="tns:CMSPreActionEJB0PortType"/>
>     </plnk:partnerLinkType>
> </definitions>
>
>
>  

--
Kiran Bhumana
Open ESB Community (http://open-esb.org)


 

Re: Need a Little Help on Dynamic PLs

by Kiran Bhumana-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

OK. The example is to provide the best mechanisms to actually construct the EPR value which is a bit involved as well. Looks like you are past that, thats good.

Let me see if you ran into the following issue.

Currently the service endpoint/port values that you provide should be available to HTTP-BC.
<ns3:ServiceName
PortName="CMSPreActionEJB0Port">ns4:CMSPreActionEJB0Service</ns3:ServiceName>
Meaning you should have had such a Service deployed into HTTP-BC. Effectively this means the only dynamic value that you can make use of is the URL.
This is a limitation and there is a pending enhancement for HTTP-BC.

Does that help?

jsexton0 wrote:
Hello -

Yes, I have studied this example carefully (as well as a few others), for a
couple of days now.  What I want to do is to use an XSD with the address
data included in normal strings, in addition to other data, as my input,
rather than directly assign to the EPR variable.  In the final application,
the address could then be driven by the other content.  Then I can assign
that address data to the ESB variable included in the BPEL's WSDL and go
from there.

Even if I derive something from this example, I still have to get the
correct data to it.  This is why I thought my question might be simple.  I
must have an error in the namespaces of the port or service?

Thanks, and thanks for your example also.  It was extremely helpful in
getting started.  But now I'm rather stuck.

Regarding the "ns2:EPR" variable...  Here is the first bit of the WSDL
providing the entry point to the BPEL:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="CMSPreActionSoap" 
    targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
xmlns:ns0="http://www.iwsinc.com/preactionresponse"
xmlns:ns="http://www.iwsinc.com/preaction"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <types>
        <xsd:schema
targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap">
            <xsd:import namespace="http://www.iwsinc.com/preactionresponse"
schemaLocation="CMSPreActionResponse.xsd"/>
            <xsd:import namespace="http://www.iwsinc.com/preaction"
schemaLocation="CMSPreAction.xsd"/>
            <xsd:import
namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"
schemaLocation="schemas.xmlsoap.org/ws/2004/08/addressing.xsd" />
            <xsd:element name="EPR">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element ref="wsa:EndpointReference" />
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </types>
    <message name="CMSPreActionSoapOperationRequest">
        <part name="part1" element="ns:CMSPreAction"/>
    </message>
...

This seems to all work ok, in that it tries to find the endpoint.  I do all
the assignments I need, it's simply that the values of the service or port
must be wrong.  I know the address is correct since it's easy to test with a
quick http request. 


Kiran Bhumana-2 wrote:
  
Where is your "ns2:EPR" definition? I didn't find it below. Referred by,

<variable name="EPR" element="ns2:EPR"/>

Can you use the attached example to see if it helps you? The attached 
example was written so that it will be added to the sample BPEL projects 
of NB. Provide suggestions so that the sample can be improved.
If the sample doesn't help at all in your case, one of us can look at 
your specific case and debug it.

- Kiran B.

jsexton0 wrote:
    
Hopefully this is a simple question because I seen to be very, very close
to
the setup I'd like.  I'm placing endpoint data in a literal in the BPEL
for
now, until I get it formed correctly.  However, I'm getting
"BPJBI-6019:unable to resolve the service endpoint dynamically for the
document fragment".  It seem correct to me though...

He are some sections of the BPEL, Assign9 contains the addressing
information assigned to a variable and the variable is later used select
a
PL.  Is there a namespace incorrect in my literal XML in assign9?  If I
can
get this right, I can move the addressing to the input.  But I'm out of
ideas.

Thanks!

...
    xmlns:ns0="http://www.iwsinc.com/preaction"
xmlns:ns1="http://www.iwsinc.com/preactionresponse"
    xmlns:ns2="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:ns4="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
xmlns:ns5="http://docs.oasis-open.org/wsbpel/2.0/process/executable">
    <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
location="CMSPreActionSoap.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
location="CMSPreActionEJB0.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
    <partnerLinks>
        <partnerLink name="CMSPreActionEJB0PL"
xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
partnerLinkType="tns:CMSPreActionEJB0"
partnerRole="CMSPreActionEJB0PortTypeRole"/>
        <partnerLink name="CMSPreActionSoapPL"
xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionSoap"
partnerLinkType="tns:CMSPreActionSoap"
myRole="CMSPreActionSoapPortTypeRole"/>
    </partnerLinks>
    <variables>
        <variable name="EPR" element="ns2:EPR"/>
...
                <assign name="Assign9">
                    <copy>
                        <from>
                            <literal><ns3:EndpointReference>
<ns3:Address>http://localhost:8080/CMSPreActionEJB0Service/CMSPreActionEJB0</ns3:Address>
<ns3:ServiceName
PortName="CMSPreActionEJB0Port">ns4:CMSPreActionEJB0Service</ns3:ServiceName>
</ns3:EndpointReference></literal>
                        </from>
                        <to>$EPR/ns3:EndpointReference</to>
                    </copy>
                </assign>
...
                <assign name="Assign7">
                    <copy>
                        <from variable="EPR"/>
                        <to partnerLink="CMSPreActionEJB0PL"/>
                    </copy>
                </assign>
...
                <invoke name="Invoke2" partnerLink="CMSPreActionEJB0PL"
operation="CMSPreActionEJB0Operation"
xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
portType="tns:CMSPreActionEJB0PortType"
inputVariable="CMSPreActionEJBCustomOperationIn"
outputVariable="CMSPreActionEJBCustomOperationOut"/>

This is the WSDL used in the PL:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="CMSPreActionEJB0"
targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0"
xmlns:ns0="http://www.iwsinc.com/preactionresponse"
xmlns:ns="http://www.iwsinc.com/preaction"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <types>
        <xsd:schema
targetNamespace="http://j2ee.netbeans.org/wsdl/CMSPreActionEJB0">
            <xsd:import namespace="http://www.iwsinc.com/preaction"
schemaLocation="CMSPreAction.xsd"/>
            <xsd:import
namespace="http://www.iwsinc.com/preactionresponse"
schemaLocation="CMSPreActionResponse.xsd"/>
        </xsd:schema>
    </types>
    <message name="CMSPreActionEJB0OperationRequest">
        <part name="part1" element="ns:CMSPreAction"/>
    </message>
    <message name="CMSPreActionEJB0OperationResponse">
        <part name="part1" element="ns0:CMSPreActionResponse"/>
    </message>
    <portType name="CMSPreActionEJB0PortType">
        <operation name="CMSPreActionEJB0Operation">
            <input name="input1"
message="tns:CMSPreActionEJB0OperationRequest"/>
            <output name="output1"
message="tns:CMSPreActionEJB0OperationResponse"/>
        </operation>
    </portType>
    <binding name="CMSPreActionEJB0Binding"
type="tns:CMSPreActionEJB0PortType">
        <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="CMSPreActionEJB0Operation">
            <soap:operation/>
            <input name="input1">
                <soap:body use="literal"/>
            </input>
            <output name="output1">
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="CMSPreActionEJB0Service">
        <port name="CMSPreActionEJB0Port"
binding="tns:CMSPreActionEJB0Binding">
            <soap:address
location="http://localhost:${HttpDefaultPort}/CMSPreActionEJB0Service/CMSPreActionEJB0Port"/>
        </port>
    </service>
    <plnk:partnerLinkType name="CMSPreActionEJB0">
        <!-- A partner link type is automatically generated when a new
port
type is added. Partner link types are used by BPEL processes. 
In a BPEL process, a partner link represents the interaction between the
BPEL process and a partner service. Each partner link is associated with
a
partner link type.
A partner link type characterizes the conversational relationship between
two services. The partner link type can have one or two roles.-->
        <plnk:role name="CMSPreActionEJB0PortTypeRole"
portType="tns:CMSPreActionEJB0PortType"/>
    </plnk:partnerLinkType>
</definitions>


  
      
-- 
Kiran Bhumana
Open ESB Community (http://open-esb.org)


 

    

  

-- 
Kiran Bhumana
Open ESB Community (http://open-esb.org)

Re: Need a Little Help on Dynamic PLs

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The address part of what I am using is the part that I can easily confirm, just using a browser, and that is correct.  So why can't it locate the endpoint?  Should I assign nothing to the port and service?

Maybe I'll try further to work within the example.  Part of what I need to do is make this addressing, and thus the dynamic call, optional in the input, at the outer most level.

Thanks again

Kiran Bhumana-2 wrote:
OK. The example is to provide the best mechanisms to actually construct
the EPR value which is a bit involved as well. Looks like you are past
that, thats good.

Let me see if you ran into the following issue.

Currently the service endpoint/port values that you provide should be
available to HTTP-BC.

<ns3:ServiceName
PortName="CMSPreActionEJB0Port">ns4:CMSPreActionEJB0Service</ns3:ServiceName>

Meaning you should have had such a Service deployed into HTTP-BC.
Effectively this means the only dynamic value that you can make use of
is the URL.
This is a limitation and there is a pending enhancement for HTTP-BC.

Does that help?

Re: Need a Little Help on Dynamic PLs

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello -

I've made this very, very similar to the example, but still the problem persists.  The only difference I see is that I have the addressing information inside an optional piece, in an XSD, which I use to define the outer most input WSDL.  Although this is a difference, it still seems to me that I must just have the endpoint information wrong.  But I just can't see it...

I'm uploading the projects.  I'd be grateful for any advise, I think I'm at a loss...  Thanks

NetbeansProjects.zip

Re: Need a Little Help on Dynamic PLs

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I made an even more trivial case, nearly exactly like the example.  In this case I get "BPJBI-6019:unable to resolve the service endpoint dynamically for the document fragment".  The only difference in this instance is that the jar with the EJB I mean to call is included in the SA.  Is that a problem?

Re: Need a Little Help on Dynamic PLs

by Kiran Bhumana-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Yes, it is a problem as the feature status stands now. Dynamic end point
feature works for HTTP-BC and BPEL-SE. If you include the EJB in
comp-App (SA), the call from BPEL directly goes to the EJB through
JavaEE and that will not work.
If you want to make it work, you can manually edit on the CASA editor to
link the BPEL OUT to HTTP IN and from HTTP IN to the EJB.

-Kiran B.

jsexton0 wrote:
> I made an even more trivial case, nearly exactly like the example.  In this
> case I get "BPJBI-6019:unable to resolve the service endpoint dynamically
> for the document fragment".  The only difference in this instance is that
> the jar with the EJB I mean to call is included in the SA.  Is that a
> problem?
>  

--
Kiran Bhumana
Open ESB Community (http://open-esb.org)


Re: Need a Little Help on Dynamic PLs

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks, I'm beginning to understand this better...
Slowly.

Kiran Bhumana-2 wrote:
Yes, it is a problem as the feature status stands now. Dynamic end point
feature works for HTTP-BC and BPEL-SE. If you include the EJB in
comp-App (SA), the call from BPEL directly goes to the EJB through
JavaEE and that will not work.
If you want to make it work, you can manually edit on the CASA editor to
link the BPEL OUT to HTTP IN and from HTTP IN to the EJB.

-Kiran B.

jsexton0 wrote:
> I made an even more trivial case, nearly exactly like the example.  In this
> case I get "BPJBI-6019:unable to resolve the service endpoint dynamically
> for the document fragment".  The only difference in this instance is that
> the jar with the EJB I mean to call is included in the SA.  Is that a
> problem?
>  

--
Kiran Bhumana
Open ESB Community (http://open-esb.org)