本人最近在研究学习bpel方面的知识,根据网上的简单demo,可以部署bpel的简单的helloworld测试项目。本人用eclipse3.5.1来开发bpel程序,以Tomcat6.0为服务器,用ODE作为bpel项目的引擎,在eclipse中创建bpel文件时,同时会创建一个关联的wsdl文件,目前我想在该bpel项目内添加两个wsdl文件,通过bpel的伙伴链接功能引用该两个wsdl文件里的服务。在bpel文件里有该两个wsdl文件的import语法时,部署不会出现异常,但是一旦我添加了伙伴链接代码,再次部署就会出现异常。现将部分代码贴出来:部署不报异常的代码:
    <bpel:process name="CaculatorBpel"
         targetNamespace="http://caculator.sample.bpel.com/client"
         suppressJoinFailure="yes"
         xmlns:tns="http://caculator.sample.bpel.com/client"
         xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         xmlns:ns2="http://sub.caculator.sample.bpel.com/"
         xmlns:ns1="http://add.caculator.sample.bpel.com/" 
         ><bpel:import namespace="http://add.caculator.sample.bpel.com/" location="AddService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
    <bpel:import namespace="http://sub.caculator.sample.bpel.com/" location="SubstractService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
    <bpel:import location="CaculatorBpelArtifacts.wsdl" namespace="http://caculator.sample.bpel.com/client" 
        importType="http://schemas.xmlsoap.org/wsdl/" /><bpel:partnerLinks>
                <!-- The 'client' role represents the requester of this service. -->
        <bpel:partnerLink myRole="CaculatorBpelProvider" name="client" partnerLinkType="tns:CaculatorBpel"/>
        
    </bpel:partnerLinks>
。。
下面是报异常的部分代码:   <bpel:process name="CaculatorBpel"
         targetNamespace="http://caculator.sample.bpel.com/client"
         suppressJoinFailure="yes"
         xmlns:tns="http://caculator.sample.bpel.com/client"
         xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
         xmlns:ns2="http://sub.caculator.sample.bpel.com/"
         xmlns:ns1="http://add.caculator.sample.bpel.com/" 
         ><bpel:import namespace="http://add.caculator.sample.bpel.com/" location="AddService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
    <bpel:import namespace="http://sub.caculator.sample.bpel.com/" location="SubstractService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"></bpel:import>
    <bpel:import location="CaculatorBpelArtifacts.wsdl" namespace="http://caculator.sample.bpel.com/client" 
        importType="http://schemas.xmlsoap.org/wsdl/" />
<bpel:partnerLinks>
        <!-- The 'client' role represents the requester of this service. -->
        <bpel:partnerLink myRole="CaculatorBpelProvider" name="client" partnerLinkType="tns:CaculatorBpel"/>
        <bpel:partnerLink name="AddLink" partnerLinkType="ns1:AddLink" myRole="AddProvider"></bpel:partnerLink>
        <bpel:partnerLink name="SubLink" partnerLinkType="ns2:SubstractLink" myRole="SubstractProvider"></bpel:partnerLink>
        
        
    </bpel:partnerLinks>

报出的异常如下:
INFO - GeronimoLog.info(79) | Unregistered process {http://caculator.sample.bpel.com/client}CaculatorBpel-31.
ERROR - GeronimoLog.error(108) | Deployment of CaculatorBPEL failed, aborting for now.
org.apache.ode.bpel.iapi.ContextException: Deployment failed within the engine.
        at org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:308)
        at org.apache.ode.axis2.deploy.DeploymentPoller.check(DeploymentPoller.java:144)
        at org.apache.ode.axis2.deploy.DeploymentPoller.access$300(DeploymentPoller.java:55)
        at org.apache.ode.axis2.deploy.DeploymentPoller$PollingThread.run(DeploymentPoller.java:188)
Caused by: java.lang.IllegalArgumentException: No service name for myRole plink PartnerLink
        at org.apache.ode.bpel.engine.ODEProcess.setRoles(ODEProcess.java:666)
        at org.apache.ode.bpel.engine.ODEProcess.access$1000(ODEProcess.java:101)
        at org.apache.ode.bpel.engine.ODEProcess$HydrationLatch.doHydrate(ODEProcess.java:1255)
        at org.apache.ode.bpel.engine.ODEProcess$HydrationLatch.access$200(ODEProcess.java:1215)
        at org.apache.ode.bpel.engine.ODEProcess$HydrationLatch$2.run(ODEProcess.java:1226)
        at org.apache.ode.bpel.engine.NStateLatch.latch(NStateLatch.java:89)
        at org.apache.ode.bpel.engine.ODEProcess.hydrate(ODEProcess.java:847)
        at org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:383)
        at org.apache.ode.axis2.ODEServer.handleEvent(ODEServer.java:626)
        at org.apache.ode.axis2.ODEServer.access$100(ODEServer.java:91)
        at org.apache.ode.axis2.ODEServer$ProcessStoreListenerImpl.onProcessStoreEvent(ODEServer.java:613)
        at org.apache.ode.store.ProcessStoreImpl.fireEvent(ProcessStoreImpl.java:517)
        at org.apache.ode.store.ProcessStoreImpl.fireStateChange(ProcessStoreImpl.java:523)
        at org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:301)
        ... 3 more
希望高手指点下。本人qq号码:371319819,如能qq指导,本人感激不尽。谢谢!