users@glassfish.java.net

Re: BPEL question

From: <glassfish_at_javadesktop.org>
Date: Fri, 20 Jul 2007 07:11:14 PDT

Hello as said before, i'm building (or at least trying to) a loan broker example. So I've created a really simplified version of it, that is also having the same error as the full version. The partnerlink involved have been tested sucessfully.

One thing that I should metion is that I changed the WSDLs for the PartnerLinks. When using the ones generated by glassfish with jsr181 annotations, the process fails to find the XSDs that the glassfish generates. So Instead of using a <xsd:import> inside the <types>, I've defined them, the same way, namespace and types as the XSD created by glassfish.

So, any ideas of what am I doing wrong here?

Regards


##BPEL Process##
<?xml version="1.0" encoding="UTF-8"?>
<process
    name="CreditoFinanceiro"
    targetNamespace="http://com.acme/process/CreditoFinanceiro"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://com.acme/process/CreditoFinanceiro" xmlns:ns1="http://enterprise.netbeans.org/bpel/CreditoFinanceiroServiceWrapper" xmlns:ns2="http://acme.com/services/CreditoFinanceiroService" xmlns:ns3="http://enterprise.netbeans.org/bpel/VerificadorCreditoServiceWrapper" xmlns:ns4="http://acme.com/services/VerificadorCreditoService" xmlns:ns5="http://enterprise.netbeans.org/bpel/BancoAltoRiscoServiceWrapper" xmlns:ns6="http://acme.com/services/BancoAltoRiscoService">
    <import namespace="http://enterprise.netbeans.org/bpel/CreditoFinanceiroServiceWrapper" location="CreditoFinanceiroServiceWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://acme.com/services/CreditoFinanceiroService" location="CreditoFinanceiroService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://enterprise.netbeans.org/bpel/BancoAltoRiscoServiceWrapper" location="BancoAltoRiscoServiceWrapper.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://acme.com/services/BancoAltoRiscoService" location="BancoAltoRiscoService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <partnerLinks>
        <partnerLink name="PartnerLink1" partnerLinkType="ns5:BancoAltoRiscoBeanLinkType" partnerRole="BancoAltoRiscoBeanRole"/>
        <partnerLink name="CreditoFinanceiroPL" partnerLinkType="ns1:CreditoFinanceiroServiceLinkType" myRole="myRole"/>
    </partnerLinks>
    <variables>
        <variable name="ObterTaxaJurosOut1" messageType="ns6:obterTaxaJurosResponse"/>
        <variable name="ObterTaxaJurosIn1" messageType="ns6:obterTaxaJuros"/>
        <variable name="ObterTaxaJurosOut" messageType="ns2:obterTaxaJurosResponse"/>
        <variable name="ObterTaxaJurosIn" messageType="ns2:obterTaxaJurosRequest"/>
    </variables>
    <sequence>
        <receive name="Receive1" createInstance="yes" partnerLink="CreditoFinanceiroPL" operation="obterTaxaJuros" portType="ns2:CreditoFinanceiroServicePortType" variable="ObterTaxaJurosIn"/>
        <assign name="Assign1">
            <copy>
                <from>$ObterTaxaJurosIn.parameters/valor</from>
                <to>$ObterTaxaJurosIn1.parameters/valor</to>
            </copy>
            <copy>
                <from>$ObterTaxaJurosIn.parameters/parcelas</from>
                <to>$ObterTaxaJurosIn1.parameters/parcelas</to>
            </copy>
        </assign>
        <invoke name="Invoke1" partnerLink="PartnerLink1" operation="obterTaxaJuros" portType="ns6:BancoAltoRiscoBean" inputVariable="ObterTaxaJurosIn1" outputVariable="ObterTaxaJurosOut1"/>
        <assign name="Assign2">
            <copy>
                <from>$ObterTaxaJurosOut1.parameters/juros</from>
                <to>$ObterTaxaJurosOut.parameters/juros</to>
            </copy>
            <copy>
                <from>$ObterTaxaJurosOut1.parameters/parcelas</from>
                <to>$ObterTaxaJurosOut.parameters/parcelas</to>
            </copy>
            <copy>
                <from>$ObterTaxaJurosOut1.parameters/valor</from>
                <to>$ObterTaxaJurosOut.parameters/valorSolicitado</to>
            </copy>
            <copy>
                <from>$ObterTaxaJurosOut1.parameters/valorMensal</from>
                <to>$ObterTaxaJurosOut.parameters/valorMensal</to>
            </copy>
            <copy>
                <from> ( $ObterTaxaJurosOut1.parameters/valorMensal * $ObterTaxaJurosOut1.parameters/parcelas ) </from>
                <to>$ObterTaxaJurosOut.parameters/valorTotal</to>
            </copy>
            <copy>
                <from>
                    <literal>Banco Alto Risco</literal>
                </from>
                <to>$ObterTaxaJurosOut.parameters/bancoEmprestimo</to>
            </copy>
        </assign>
        <reply name="Reply1" partnerLink="CreditoFinanceiroPL" operation="obterTaxaJuros" portType="ns2:CreditoFinanceiroServicePortType" variable="ObterTaxaJurosOut"/>
    </sequence>
</process>

##Partner Link WSDL##

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
             xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:tns="http://acme.com/services/BancoAltoRiscoService"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             targetNamespace="http://acme.com/services/BancoAltoRiscoService"
             name="BancoAltoRiscoService">
<wsp:UsingPolicy></wsp:UsingPolicy>
<wsp:Policy wsu:Id="BancoAltoRiscoBeanPortBinding_obterTaxaJuros_WSAT_Policy">
<wsp:ExactlyOne>
<wsp:All>
<ns1:ATAlwaysCapability xmlns:ns1="http://schemas.xmlsoap.org/ws/2004/10/wsat" wsp:Optional="false"></ns1:ATAlwaysCapability>
<ns2:ATAssertion xmlns:ns3="http://schemas.xmlsoap.org/ws/2002/12/policy" xmlns:ns2="http://schemas.xmlsoap.org/ws/2004/10/wsat" ns3:Optional="true" wsp:Optional="true"></ns2:ATAssertion>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<types>
<xsd:schema targetNamespace="http://acme.com/services/BancoAltoRiscoService">
<xsd:element name="obterTaxaJuros" type="tns:obterTaxaJuros"></xsd:element>

<xsd:element name="obterTaxaJurosResponse" type="tns:obterTaxaJurosResponse"></xsd:element>

<xsd:complexType name="obterTaxaJuros">
<xsd:sequence>
<xsd:element name="valor" type="xsd:double"></xsd:element>
<xsd:element name="parcelas" type="xsd:int"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="obterTaxaJurosResponse">
    
<xsd:sequence>
<xsd:element name="juros" type="xsd:double"></xsd:element>
<xsd:element name="parcelas" type="xsd:int"></xsd:element>
<xsd:element name="valor" type="xsd:double"></xsd:element>
<xsd:element name="valorMensal" type="xsd:double"></xsd:element>
</xsd:sequence>

</xsd:complexType>
</xsd:schema>


</types>
<message name="obterTaxaJuros">
<part name="parameters" element="tns:obterTaxaJuros"></part>
</message>
<message name="obterTaxaJurosResponse">
<part name="parameters" element="tns:obterTaxaJurosResponse"></part>
</message>
<portType name="BancoAltoRiscoBean">
<operation name="obterTaxaJuros">
<input message="tns:obterTaxaJuros"></input>
<output message="tns:obterTaxaJurosResponse"></output>
</operation>
</portType>
<binding name="BancoAltoRiscoBeanPortBinding" type="tns:BancoAltoRiscoBean">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
<operation name="obterTaxaJuros">
<wsp:PolicyReference URI="#BancoAltoRiscoBeanPortBinding_obterTaxaJuros_WSAT_Policy"></wsp:PolicyReference>
<soap:operation soapAction=""></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<service name="BancoAltoRiscoService">
<port name="BancoAltoRiscoBeanPort" binding="tns:BancoAltoRiscoBeanPortBinding">
<soap:address location="http://localhost:8080/BancoAltoRiscoService/BancoAltoRiscoBean"></soap:address>
</port>
</service>

</definitions>

##PROCESS PartnerLink to invoke and reply##
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
              xmlns:tns="http://acme.com/services/CreditoFinanceiroService"
              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              xmlns="http://schemas.xmlsoap.org/wsdl/"
              targetNamespace="http://acme.com/services/CreditoFinanceiroService"
              name="CreditoFinanceiroService">
<types>
<xsd:schema targetNamespace="http://acme.com/services/CreditoFinanceiroService">
     <xsd:element name="TaxaFinanciamento">
        <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="valorSolicitado" type="xsd:double"/>
            <xsd:element name="parcelas" type="xsd:int"/>
            <xsd:element name="juros" type="xsd:double"/>
            <xsd:element name="valorMensal" type="xsd:double"/>
            <xsd:element name="valorTotal" type="xsd:double"/>
            <xsd:element name="bancoEmprestimo" type="xsd:string"/>
        </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="taxaJuros">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="nome" type="xsd:string"/>
                <xsd:element name="cpf" type="xsd:string"/>
                <xsd:element name="valor" type="xsd:double"/>
                <xsd:element name="parcelas" type="xsd:int"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>
</types>

<message name="obterTaxaJurosRequest">
    <part name="parameters" element="tns:taxaJuros"/>
</message>

<message name="obterTaxaJurosResponse">
    <part name="parameters" element="tns:TaxaFinanciamento"/>
</message>

<portType name="CreditoFinanceiroServicePortType">
    <operation name="obterTaxaJuros">
        <input message="tns:obterTaxaJurosRequest"></input>
        <output message="tns:obterTaxaJurosResponse"></output>
    </operation>
</portType>
<binding name="CreditoFinanceiroServicePortBinding" type="tns:CreditoFinanceiroServicePortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
    <operation name="obterTaxaJuros">
        <input>
            <soap:body use="literal"></soap:body>
        </input>
        <output>
            <soap:body use="literal"></soap:body>
        </output>
    </operation>
</binding>

<service name="CreditoFinanceiroService">
    <port name="CreditoFinanceiroPort" binding="tns:CreditoFinanceiroServicePortBinding">
        <soap:address location="http://localhost:18181/CreditoFinanceiroService"/>
    </port>
</service>
</definitions>
[Message sent by forum member 'viniciuscarvalho' (viniciuscarvalho)]

http://forums.java.net/jive/thread.jspa?messageID=227444