I've an irritating problem that I'm hoping someone can help with - I suspect
the solution is hugely simple, but I just can't seem to get it, any
assistance would be very much appreciated.
I have constructed a JBI system very similar in format to the Loanbroker
example that comes with Servicemix - though somewhat simplified. The current
architecture is simply designed to pass messages through to an external
webservice (and eventually back out again, but for the moment being able to
make sucessful contact with the webservice would suffice). Service mix is
running in fuse.
I've developed the system (using spring) to the stage where it will receive
messages through a jms binding component, pass them to a pipeline component
(which behaves exactly like the loanbroker-lb component in the example),
which then forwards them on to bpel. The messages get this far, capably
executing bpel commands (receive the assign), but fails to proceed beyond
despite an 'invoke' call.
With that 'Invoke' I am trying to get the BPEL service engine to pass the
messages on to the binding component (called avs-orange-http) which should
then send them to the external webservice. This structure again is following
the same process of interaction between the loanbroker-bpel and the
loanbroker-ca components in the loanbroker example. Unfortunately though,
servicemix throws an error (Full error message listed below).
Any help on identifying why this error is being thrown and how to resolve it
would be fantastic.
Below i've included the error message, avs.bpel, the avs.wsdl, the
orange_avs.wsdl and the avs-orange-http xbean.xml
Thanks
George
1) The Error - currently my least favourite thing in the world:
-----------------------------------
jvm 1 | SEVERE: An error occurred when attempting to route the service
request for operation: isAdultContentAllowed, port type:
OrangeAgeVerification, target namespace urn:com.d2see.service.avs.orange,
correlation key(s): to a business process instance. The correlation
definition for this operation is as follows: . Inspect the business process
design and verify that a business process instance is waiting for this
request to be sent.
jvm 1 | org.apache.ode.bpe.correlation.CorrelationServiceException: An
error occurred when attempting to route the service request for operation:
isAdultContentAllowed, port type: OrangeAgeVerification, target namespace
urn:com.d2see.service.avs.orange, correlation key(s): to a business process
instance. The correlation definition for this operation is as follows: .
Inspect the business process design and verify that a business process
instance is waiting for this request to be sent.
jvm 1 | at
org.apache.ode.bpe.correlation.CorrelationService.correlateEvent(CorrelationService.java:361)
jvm 1 | at
org.apache.ode.bpe.bped.unmanaged.EventDirectorSLImpl.sendEvent(EventDirectorSLImpl.java:116)
jvm 1 | at
org.apache.servicemix.bpe.BPEEndpoint.process(BPEEndpoint.java:130)
jvm 1 | at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:410)
jvm 1 | at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:43)
jvm 1 | at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
jvm 1 | at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:169)
jvm 1 | at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:177)
jvm 1 | at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:227)
jvm 1 | at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
jvm 1 | at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
jvm 1 | at java.lang.Thread.run(Unknown Source)
jvm 1 | ERROR - BaseLifeCycle.onMessageExchange(45) | Error processing
exchange InOut[
jvm 1 | id: ID:D2-WS003-GB-4768-1164117012118-4:0
jvm 1 | status: Active
jvm 1 | role: provider
jvm 1 | interface:
{urn:com.d2see.service.avs.orange}OrangeAgeVerification
jvm 1 | endpoint: orangeHttp
jvm 1 | operation:
{urn:com.d2see.service.avs.orange}isAdultContentAllowed
jvm 1 | in: <?xml version="1.0" encoding="UTF-8"?><MSISDN>1000</MSISDN>
jvm 1 | ]
jvm 1 | org.apache.ode.bpe.correlation.CorrelationServiceException: An
error occurred when attempting to route the service request for operation:
isAdultContentAllowed, port type: OrangeAgeVerification, target namespace
urn:com.d2see.service.avs.orange, correlation key(s): to a business process
instance. The correlation definition for this operation is as follows: .
Inspect the business process design and verify that a business process
instance is
waiting for this request to be sent.
jvm 1 | at
org.apache.ode.bpe.correlation.CorrelationService.correlateEvent(CorrelationService.java:361)
jvm 1 | at
org.apache.ode.bpe.bped.unmanaged.EventDirectorSLImpl.sendEvent(EventDirectorSLImpl.java:116)
jvm 1 | at
org.apache.servicemix.bpe.BPEEndpoint.process(BPEEndpoint.java:130)
jvm 1 | at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:410)
jvm 1 | at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:43)
jvm 1 | at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:623)
jvm 1 | at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:169)
jvm 1 | at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:177)
jvm 1 | at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:227)
jvm 1 | at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
jvm 1 | at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
jvm 1 | at java.lang.Thread.run(Unknown Source)
jvm 1 | ERROR - AgeVerificationBroker.onMessageExchange(78) | Error
during consumed service invocation
2) The avs.bpel -----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<process name="AgeVerificationProcessAsync"
targetNamespace="urn:com.d2see.service.avs"
suppressJoinFailure="yes"
xmlns:avs="urn:com.d2see.service.avs"
xmlns:avs_orange="urn:com.d2see.service.avs.orange"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sm="http://servicemix.apache.org/schemas/bpe/1.0"
xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2"
xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/
http://schemas.xmlsoap.org/ws/2003/03/business-process/">
<variables>
<variable name="avs-request" messageType="avs:verifyAgeRequest"
/>
<variable name="avs-response"
messageType="avs:verifyAgeResponse" />
<variable name="orange-avs-request"
messageType="avs_orange:isAdultContentAllowedRequest" />
<variable name="orange-avs-response"
messageType="avs_orange:isAdultContentAllowedResponse" />
</variables>
<faultHandlers></faultHandlers>
<eventHandlers></eventHandlers>
<sequence>
<receive
name="request"
partnerLink="AgeVerificationService"
portType="avs:AgeVerificationAsync"
operation="verifyAge"
variable="avs-request"
createInstance="yes">
</receive>
<flow>
<sequence>
<assign>
<copy>
<from variable="avs-request"
part="payload" query="//MSISDN"/>
<to
variable="orange-avs-request" part="payload" query="//MSISDN" />
</copy>
</assign>
<invoke name="service"
partnerLink="OrangeAgeVerification"
portType="avs_orange:OrangeAgeVerification"
operation="isAdultContentAllowed"
inputVariable="orange-avs-request"
outputVariable="orange-avs-response" />
</sequence>
</flow>
</sequence>
</process>
3)The avs.wsdl -----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<definitions targetNamespace="urn:com.d2see.service.avs"
xmlns:avs="urn:com.d2see.service.avs"
xmlns:avs_orange="urn:com.d2see.service.avs.orange"
xmlns:typens="urn:com.d2see.service.avs.types"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="avs"
xmlns:p="http://schemas.xmlsoap.org/wsdl/http/">
<import namespace="urn:com.d2see.service.avs.orange"
location="orange_avs.wsdl" />
<types>
<xsd:schema targetNamespace="urn:com.d2see.service.avs.types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="verifyAgeRequestType">
<xsd:sequence>
<xsd:element name="id"
type="xsd:string" minOccurs="0"/>
<xsd:element name="MSISDN"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="verifyAgeResponseType">
<xsd:sequence>
<xsd:element name="id"
type="xsd:string" minOccurs="0"/>
<xsd:element
name="over18ContentAllowed" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="verifyAgeRequest">
<part name="payload" type="typens:verifyAgeRequestType"/>
</message>
<message name="verifyAgeResponse">
<part name="payload" type="typens:verifyAgeResponseType"/>
</message>
<portType name="AgeVerificationAsync">
<operation name="verifyAge">
<input message="avs:verifyAgeRequest"/>
<output message="avs:verifyAgeResponse"/>
</operation>
</portType>
<binding name="AgeVerificationAsync" type="avs:AgeVerificationAsync" />
<binding name="OrangeAvsServiceBinding"
type="avs_orange:OrangeAgeVerification">
<operation name="isAdultContentAllowed">
<input></input>
<output></output>
</operation>
</binding>
<service name="AgeVerificationAsyncService">
<port name="ageverification" binding="avs:AgeVerificationAsync"
/>
</service>
<service name="OrangeAgeVerificationService">
<port name="orangeHttp" binding="avs:OrangeAvsServiceBinding" />
</service>
</definitions>
4)The orange_avs.wsdl -----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:avs_orange="urn:com.d2see.service.avs.orange"
xmlns:typens="urn:com.d2see.service.avs.orange.types"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
targetNamespace="urn:com.d2see.service.avs.orange">
<types>
<xsd:schema
targetNamespace="urn:com.d2see.service.avs.orange.types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="orangeRPCRequest">
<xsd:sequence>
<xsd:element name="MSISDN"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="orangeRPCResponse">
<xsd:sequence>
<xsd:element
name="over18ContentAllowed" type="xsd:boolean" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</types>
<message name="isAdultContentAllowedRequest">
<part name="payload" type="typens:orangeRPCRequest" />
</message>
<message name="isAdultContentAllowedResponse">
<part name="payload" type="typens:orangeRPCResponse" />
</message>
<portType name="OrangeAgeVerification">
<operation name="isAdultContentAllowed">
<input
message="avs_orange:isAdultContentAllowedRequest" />
<output
message="avs_orange:isAdultContentAllowedResponse" />
</operation>
</portType>
</definitions>
5) And finally the http binding component xbean.xml
-----------------------------------
<?xml version="1.0"?>
<beans
xmlns:http="http://servicemix.apache.org/http/1.0"
xmlns:avs_orange="urn:com.d2see.service.avs.orange">
<classpath>
<location>.</location>
</classpath>
<http:endpoint
service="avs_orange:OrangeAgeVerificationService"
endpoint="orangeHttp"
interfaceName="avs_orange:OrangeAgeVerification"
role="provider"
locationURI="http://d2gb:9080/stubs/orangeavs"
defaultMep="http://www.w3.org/2004/08/wsdl/in-only"/>
</beans>
--
View this message in context:
http://www.nabble.com/Problem-invoking-service-tf2679064s12049.html#a7472044
Sent from the ServiceMix - User mailing list archive at Nabble.com.