Hello Matthieu,
1) I changed my BPEL process to receive instead of invoke.
2) I changed the <invoke> to <provide> within the deploy.xml.
The following is thrown when I deploy the process:
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#DEPLOYED:{http://service.idcor.src}hello-54}
DEBUG - GeronimoLog.debug(66) | Ignoring store event:
{ProcessStoreEvent#DEPLOYED:{http://service.idcor.src}hello-54}
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#ACTVIATED:{http://service.idcor.src}hello-54}
DEBUG - GeronimoLog.debug(66) | register: {http://service.idcor.src}hello-54
DEBUG - GeronimoLog.debug(66) | Registering process
{http://service.idcor.src}hello-54 with server.
DEBUG - GeronimoLog.debug(66) | Register process:
serviceId={http://service.idcor.src}helloService:helloServiceSOAP11port_http,
process=BpelProcess[{http://service.idcor.src}hello-54]
DEBUG - GeronimoLog.debug(66) | Activating
{http://service.idcor.src}hello-54
DEBUG - GeronimoLog.debug(66) | Destroying service
{http://service.idcor.src}helloService port helloServiceSOAP11port_http
DEBUG - GeronimoLog.debug(66) | Couldn't find service
{http://service.idcor.src}helloService port helloServiceSOAP11port_http
to destroy.
WARN - GeronimoLog.warn(92) | Deployment failed within the engine, store
undeploying process.
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#UNDEPLOYED:{http://service.idcor.src}hello-54}
DEBUG - GeronimoLog.debug(66) | Deactivating process
{http://service.idcor.src}hello-54
INFO - GeronimoLog.info(79) | Unregistered process
{http://service.idcor.src}hello-54.
ERROR - GeronimoLog.error(108) | Deployment of hello failed, aborting
for now.
org.apache.ode.bpel.iapi.ContextException: Could not activate endpoint
for service {http://service.idcor.src}helloService and port
helloServiceSOAP11port_http
at
org.apache.ode.axis2.BindingContextImpl.activateMyRoleEndpoint(BindingContextImpl.java:62)
at org.apache.ode.bpel.engine.BpelProcess.activate(BpelProcess.java:500)
at
org.apache.ode.bpel.engine.BpelEngineImpl.registerProcess(BpelEngineImpl.java:232)
at
org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:282)
at org.apache.ode.axis2.ODEServer.handleEvent(ODEServer.java:543)
at org.apache.ode.axis2.ODEServer.access$100(ODEServer.java:73)
at
org.apache.ode.axis2.ODEServer$ProcessStoreListenerImpl.onProcessStoreEvent(ODEServer.java:529)
at
org.apache.ode.store.ProcessStoreImpl.fireEvent(ProcessStoreImpl.java:501)
at
org.apache.ode.store.ProcessStoreImpl.fireStateChange(ProcessStoreImpl.java:507)
at
org.apache.ode.store.ProcessStoreImpl.deploy(ProcessStoreImpl.java:284)
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: org.apache.ode.axis2.OdeFault: The soap:address used for
service WSDL definition {http://service.idcor.src}helloService and port
helloServiceSOAP11port_http should be of the form
http://hostname:port/ode/processes/myProcessEndpointName
at
org.apache.ode.axis2.hooks.ODEAxisService.extractServiceName(ODEAxisService.java:160)
at
org.apache.ode.axis2.hooks.ODEAxisService.createService(ODEAxisService.java:60)
at org.apache.ode.axis2.ODEServer.createService(ODEServer.java:306)
at
org.apache.ode.axis2.BindingContextImpl.activateMyRoleEndpoint(BindingContextImpl.java:59)
... 12 more
Here is my new deploy.xml:
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:tns="http://service.idcor.src">
<process name="tns:hello">
<active>true</active>
<provide partnerLink="helloServicePLink">
<service name="tns:helloService" port="helloServiceSOAP11port_http" />
</provide>
</process>
</deploy>
Here is my new hello.bpel:
<bpws:process exitOnStandardFault="yes" name="hello"
suppressJoinFailure="yes" targetNamespace="http://service.idcor.src"
xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns="http://service.idcor.srcArtifacts"
xmlns:tns="http://service.idcor.src">
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="helloService.wsdl" namespace="http://service.idcor.src"/>
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="helloArtifacts.wsdl"
namespace="http://service.idcor.srcArtifacts"/>
<bpws:partnerLinks>
<bpws:partnerLink myRole="in" name="helloServicePLink"
partnerLinkType="ns:helloServicePLinkType"/>
</bpws:partnerLinks>
<bpws:variables>
<bpws:variable messageType="tns:helloRequest"
name="helloServicePLinkResponse"/>
</bpws:variables>
<bpws:sequence>
<bpws:receive name="hello_Receive" operation="hello"
partnerLink="helloServicePLink"
portType="tns:helloServicePortType"
variable="helloServicePLinkResponse"/>
</bpws:sequence>
</bpws:process>
Cheers!
~Adam
Adam Nowak wrote:
Hi Matthieu,
Thanks for the advice; I will make the appropriate changes and let you
know how it goes.
Cheers!
~Adam
Matthieu Riou wrote:
Hi Adam,
It's actually what I mentioned earlier, your process doesn't have any
receive and doesn't define any <provide partnerLink="..."> in its
deployment
descriptor. If your process never receives any message, ODE doesn't
need to
create a service for it. Your helloWorld is maybe a bit too simple :)
Cheers,
Matthieu
On 3/31/08, Adam Nowak <[EMAIL PROTECTED]> wrote:
Hello Matthieu,
With a little bit of playing around I have managed to find the process
(helloProcess) using the Management API.
However, when I visit http://localhost:8080/ode/services/listServices,
the process still does not appear on the list.
Here is my deploy.xml:
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:tns="http://service.idcor.src">
<process name="tns:helloProcess">
<active>true</active>
<invoke partnerLink="helloPartnerLink">
<service name="tns:helloService"
port="helloServiceSOAP11port_http"
/>
</invoke>
</process>
</deploy>
Here is my helloProcess.bpel
<bpws:process exitOnStandardFault="yes" name="helloProcess"
suppressJoinFailure="yes"
targetNamespace="http://service.idcor.src"
xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
xmlns:ns="http://service.idcor.srcArtifacts"
xmlns:tns="http://service.idcor.src">
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="helloProcessArtifacts.wsdl"
namespace="http://service.idcor.srcArtifacts"/>
<bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
location="helloService.wsdl"
namespace="http://service.idcor.src
"/>
<bpws:partnerLinks>
<bpws:partnerLink name="helloPartnerLink"
partnerLinkType="ns:helloServicePartnerLinkType"
partnerRole="you"/>
</bpws:partnerLinks>
<bpws:variables>
<bpws:variable messageType="tns:helloResponse"
name="helloServiceLinkResponse"/>
<bpws:variable messageType="tns:helloRequest"
name="helloServiceLinkRequest"/>
</bpws:variables>
<bpws:sequence>
<bpws:invoke inputVariable="helloServiceLinkRequest"
name="Invoke_Hello" operation="hello"
outputVariable="helloServiceLinkResponse"
partnerLink="helloPartnerLink"
portType="tns:helloServicePortType"/>
</bpws:sequence>
</bpws:process>
Here is my helloProcessArtifacts.wsdl:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:tns="http://service.idcor.srcArtifacts"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:wsdl="http://service.idcor.src" name="helloProcessArtifacts"
targetNamespace="http://service.idcor.srcArtifacts">
<plnk:partnerLinkType name="helloServicePartnerLinkType">
<plnk:role name="me" portType="wsdl:helloServicePortType"/>
<plnk:role name="you" portType="wsdl:helloServicePortType"/>
</plnk:partnerLinkType>
<import location="helloService.wsdl"
namespace="http://service.idcor.src"/>
</definitions>
Here is my helloService.wsdl:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns1="http://org.apache.axis2/xsd"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:ns0="http://service.idcor.src"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
targetNamespace="http://service.idcor.src">
<wsdl:documentation>helloService</wsdl:documentation>
<wsdl:types>
<xs:schema xmlns:ns="http://service.idcor.src"
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://service.idcor.src">
<xs:element name="helloResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return"
nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="helloParam">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="s"
nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="helloParamResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return"
nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="helloRequest"/>
<wsdl:message name="helloResponse">
<wsdl:part name="parameters" element="ns0:helloResponse"/>
</wsdl:message>
<wsdl:message name="helloParamRequest">
<wsdl:part name="parameters" element="ns0:helloParam"/>
</wsdl:message>
<wsdl:message name="helloParamResponse">
<wsdl:part name="parameters" element="ns0:helloParamResponse"/>
</wsdl:message>
<wsdl:portType name="helloServicePortType">
<wsdl:operation name="hello">
<wsdl:input message="ns0:helloRequest"
wsaw:Action="urn:hello"/>
<wsdl:output message="ns0:helloResponse"
wsaw:Action="urn:helloResponse"/>
</wsdl:operation>
<wsdl:operation name="helloParam">
<wsdl:input message="ns0:helloParamRequest"
wsaw:Action="urn:helloParam"/>
<wsdl:output message="ns0:helloParamResponse"
wsaw:Action="urn:helloParamResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="helloServiceSOAP11Binding"
type="ns0:helloServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="hello">
<soap:operation soapAction="urn:hello" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="helloParam">
<soap:operation soapAction="urn:helloParam"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="helloServiceSOAP12Binding"
type="ns0:helloServicePortType">
<soap12:binding
transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<wsdl:operation name="hello">
<soap12:operation soapAction="urn:hello" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="helloParam">
<soap12:operation soapAction="urn:helloParam"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="helloServiceHttpBinding"
type="ns0:helloServicePortType">
<http:binding verb="POST"/>
<wsdl:operation name="hello">
<http:operation location="helloService/hello"/>
<wsdl:input>
<mime:content type="text/xml" part="hello"/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="hello"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="helloParam">
<http:operation location="helloService/helloParam"/>
<wsdl:input>
<mime:content type="text/xml" part="helloParam"/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="helloParam"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="helloService">
<wsdl:port name="helloServiceSOAP11port_http"
binding="ns0:helloServiceSOAP11Binding">
<soap:address
location="http://localhost:8080/axis2/services/helloService"/>
</wsdl:port>
<wsdl:port name="helloServiceSOAP12port_http"
binding="ns0:helloServiceSOAP12Binding">
<soap12:address
location="http://localhost:8080/axis2/services/helloService"/>
</wsdl:port>
<wsdl:port name="helloServiceHttpport"
binding="ns0:helloServiceHttpBinding">
<http:address
location="http://localhost:8080/axis2/services/helloService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Cheers!
~Adam
Matthieu Riou wrote:
Hi Adam,
That's pretty strange, you don't seem to have any error or
exception at
deployment. Does your process declare any <provide> element in your
deploy.xml ? I don't have anything else that could give you that
type of
behavior on top of my head, so if it's not a missing <provide> I'd
create a
Jira issue and attach your process to it. That way I can have a
look at
the
whole thing and see what's wrong.
Cheers,
Matthieu
On 3/31/08, Adam Nowak <[EMAIL PROTECTED]> wrote:
Good Afternoon,
I have created a BPEL process called helloProcess. The process
calls a
web-service which takes no parameters and returns the string "Hello".
Every time I go to deploy the process, a .cbp file is generated,
however
helloProcess does not show up in my ODE Process list
(http://localhost:8080/ode/services/listServices).
Here is the output of my stdout log for Tomcat:
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#DEPLOYED:{
http://service.idcor.src}helloParamProcess-32
}
DEBUG - GeronimoLog.debug(66) | Ignoring store event:
{ProcessStoreEvent#DEPLOYED:{
http://service.idcor.src}helloParamProcess-32
}
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#ACTVIATED:{
http://service.idcor.src}helloParamProcess-32}
DEBUG - GeronimoLog.debug(66) | register:
{http://service.idcor.src}helloParamProcess-32
DEBUG - GeronimoLog.debug(66) | Registering process
{http://service.idcor.src}helloParamProcess-32 with server.
DEBUG - GeronimoLog.debug(66) | Activating
{http://service.idcor.src}helloParamProcess-32
DEBUG - GeronimoLog.debug(66) | Activated
{http://service.idcor.src}helloParamProcess-32
DEBUG - GeronimoLog.debug(66) | Rehydrating process
{http://service.idcor.src}helloParamProcess-32
DEBUG - GeronimoLog.debug(66) | Processing <invoke> element for
process
{http://service.idcor.src}helloParamProcess-32: partnerlink
helloPartnerLink -->
{http://service.idcor.src}helloService:helloServiceSOAP11port_http
DEBUG - GeronimoLog.debug(66) | Setting external service with empty
namespace replication
DEBUG - GeronimoLog.debug(66) | Created external service
{http://service.idcor.src}helloService
DEBUG - GeronimoLog.debug(66) | Activated
{http://service.idcor.src}helloParamProcess-32 partnerrole
helloPartnerLink: EPR is [EMAIL PROTECTED]
DEBUG - GeronimoLog.debug(66) | Creating process DAO for
{
http://service.idcor.src}helloParamProcess-32(guid=hqejbhcnphr35qs4ifkfq4)
INFO - GeronimoLog.info(79) | Registered process
{http://service.idcor.src}helloParamProcess-32.
INFO - GeronimoLog.info(79) | Deployment of artifact bpelTest
successful: [{http://service.idcor.src}helloParamProcess-32]
PS. I am new to BPEL + Apache ODE so any help would be greatly
appreciated.
Cheers!
~Adam