Hi
little question, i don't have experiences in port and service, but i found a
thing (probably i'm on fault) anyway.
the question is: each service can be attached at only one portType? can a
service has 2 ports that is used for 2 different portType?
if the answer is yes at first and no at second the rest is unuseful, i'm in
fault!
otherwise there's a problem
if i specisfy my wsdl like this:
<wsdl:service name="MyService">
<wsdl:port name="PortInvoke1"
binding="tns:PortTypeInvokeBindingSOAP">
<soap:address
location="
http://localhost:8080/RestServices/services/provaApps/test.jsp" />
</wsdl:port>
</wsdl:service>
<wsdl:service name="MyService2">
<wsdl:port name="PortReceive1"
binding="tns:PortTypeReceiveBindingSOAP">
<soap:address
location="
http://localhost:8080/ode/processes/provaApps/searchPos" />
</wsdl:port>
</wsdl:service>
and deploy like this
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:sample="
http://eclipse.org/bpel/sample" xmlns:searchPos="
http://www.example.org/searchPos/">
<process name="sample:Istanze">
<active>true</active>
<process-events generate="all"/>
<provide partnerLink="SearchPos">
<service name="searchPos:MyService2" port="PortReceive1"/>
</provide>
<invoke partnerLink="SearchPos">
<service name="searchPos:MyService" port="PortInvoke1"/>
</invoke>
</process>
</deploy>
all goes ok.
if i create only ONE sevice like this with 2 ports:
<wsdl:service name="MyService">
<wsdl:port name="PortInvoke1"
binding="tns:PortTypeInvokeBindingSOAP">
<soap:address
location="
http://localhost:8080/RestServices/services/provaApps/test.jsp" />
</wsdl:port>
<wsdl:port name="PortReceive1"
binding="tns:PortTypeReceiveBindingSOAP">
<soap:address
location="
http://localhost:8080/ode/processes/provaApps/searchPos" />
</wsdl:port>
</wsdl:service>
and deploy like this:
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:sample="
http://eclipse.org/bpel/sample" xmlns:searchPos="
http://www.example.org/searchPos/">
<process name="sample:Istanze">
<active>true</active>
<process-events generate="all"/>
<provide partnerLink="SearchPos">
<service name="searchPos:MyService" port="PortReceive1"/>
</provide>
<invoke partnerLink="SearchPos">
<service name="searchPos:MyService" port="PortInvoke1"/>
</invoke>
</process>
</deploy>
when i call the bpel i receive an exception by ode:
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#DEPLOYED:{http://eclipse.org/bpel/sample}Istanze-8}
DEBUG - GeronimoLog.debug(66) | Ignoring store event:
{ProcessStoreEvent#DEPLOYED:{http://eclipse.org/bpel/sample}Istanze-8}
DEBUG - GeronimoLog.debug(66) | Process store event:
{ProcessStoreEvent#ACTVIATED:{http://eclipse.org/bpel/sample}Istanze-8}
DEBUG - GeronimoLog.debug(66) | register: {
http://eclipse.org/bpel/sample}Istanze-8
DEBUG - GeronimoLog.debug(66) | Registering process {
http://eclipse.org/bpel/sample}Istanze-8 with server.
DEBUG - GeronimoLog.debug(66) | Register process: serviceId={
http://www.example.org/searchPos/}MyService:PortReceive1,
process=BpelProcess[{http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | Activating {
http://eclipse.org/bpel/sample}Istanze-8
DEBUG - GeronimoLog.debug(66) | Destroying service {
http://www.example.org/searchPos/}MyService port PortReceive1
DEBUG - GeronimoLog.debug(66) | Couldn't find service {
http://www.example.org/searchPos/}MyService port PortReceive1 to destroy.
DEBUG - GeronimoLog.debug(66) | Create AxisService: service={
http://www.example.org/searchPos/}MyService port=PortReceive1
WSDL=searchPos2.wsdl BPEL=Istanze.bpel
DEBUG - GeronimoLog.debug(66) | Looking for Axis2 service configuration
file:
file:/home/stefano/apache-tomcat-6.0.20/webapps/ode/WEB-INF/processes/BPELTOFIXALL/MyService.axis2
DEBUG - GeronimoLog.debug(66) | Axis2 service configuration not found:
file:/home/stefano/apache-tomcat-6.0.20/webapps/ode/WEB-INF/processes/BPELTOFIXALL/MyService.axis2
DEBUG - GeronimoLog.debug(66) | Created Axis2 service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Activated {
http://eclipse.org/bpel/sample}Istanze-8 myrole SearchPos: EPR is
org.apache.ode.bpel.epr.wsaendpo...@1f44f8a
DEBUG - GeronimoLog.debug(66) | Destroying service {
http://www.example.org/searchPos/}MyService port PortReceive1
DEBUG - GeronimoLog.debug(66) | Create AxisService: service={
http://www.example.org/searchPos/}MyService port=PortReceive1
WSDL=searchPos2.wsdl BPEL=Istanze.bpel
DEBUG - GeronimoLog.debug(66) | Looking for Axis2 service configuration
file:
file:/home/stefano/apache-tomcat-6.0.20/webapps/ode/WEB-INF/processes/BPELTOFIXALL/MyService.axis2
DEBUG - GeronimoLog.debug(66) | Axis2 service configuration not found:
file:/home/stefano/apache-tomcat-6.0.20/webapps/ode/WEB-INF/processes/BPELTOFIXALL/MyService.axis2
DEBUG - GeronimoLog.debug(66) | Created Axis2 service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Activated {
http://eclipse.org/bpel/sample}Istanze-8 myrole SearchPos2: EPR is
org.apache.ode.bpel.epr.wsaendpo...@1a755e
DEBUG - GeronimoLog.debug(66) | Activated {
http://eclipse.org/bpel/sample}Istanze-8
DEBUG - GeronimoLog.debug(66) | Rehydrating process {
http://eclipse.org/bpel/sample}Istanze-8
DEBUG - GeronimoLog.debug(66) | Processing <invoke> element for process {
http://eclipse.org/bpel/sample}Istanze-8: partnerlink SearchPos --> {
http://www.example.org/searchPos/}MyService:PortInvoke1
DEBUG - GeronimoLog.debug(66) | Processing <invoke> element for process {
http://eclipse.org/bpel/sample}Istanze-8: partnerlink SearchPos2 --> {
http://www.example.org/searchPos/}MyService:PortInvoke2
DEBUG - GeronimoLog.debug(66) | Creating SOAP-bound external service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Created external service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Activated {
http://eclipse.org/bpel/sample}Istanze-8 partnerrole SearchPos: EPR is
org.apache.ode.bpel.epr.wsaendpo...@1d93f39
DEBUG - GeronimoLog.debug(66) | Creating SOAP-bound external service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Created external service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Activated {
http://eclipse.org/bpel/sample}Istanze-8 partnerrole SearchPos2: EPR is
org.apache.ode.bpel.epr.wsaendpo...@1c5cdac
DEBUG - GeronimoLog.debug(66) | Creating process DAO for {
http://eclipse.org/bpel/sample}Istanze-8 (guid=hqejbhcnphr4tk4allwnlb)
INFO - GeronimoLog.info(79) | Registered process {
http://eclipse.org/bpel/sample}Istanze-8.
INFO - GeronimoLog.info(79) | Deployment of artifact BPELTOFIXALL
successful: [{http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | Checking for Service using target endpoint
address : http://localhost:8080/ode/processes/provaApps/searchPos
DEBUG - GeronimoLog.debug(66) | Found service in registry from name
provaApps/searchPos: provaApps/searchPos
DEBUG - GeronimoLog.debug(66) | The system is checking for the operation
using the following WSAAction:
DEBUG - GeronimoLog.debug(66) | Checking for Operation using SOAP message
body's first child's local name : search
DEBUG - GeronimoLog.debug(66) | Found operation
org.apache.axis2.description.inonlyaxisoperat...@28388b
DEBUG - GeronimoLog.debug(66) | Found a header in incoming message, checking
if there are endpoints there.
DEBUG - GeronimoLog.debug(66) | Received one-way message for
provaApps/searchPos.{http://www.example.org/searchPos/}search
DEBUG - GeronimoLog.debug(66) | Starting transaction.
DEBUG - GeronimoLog.debug(66) | Routed: svcQname {
http://www.example.org/searchPos/}MyService --> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | ODE routed to operation Operation:
name=search
style=ONE_WAY,0
Input: name=null
Message: name={http://www.example.org/searchPos/}searchResponse
Part: name=parameters
elementName={http://www.example.org/searchPos/}search from service {
http://www.example.org/searchPos/}MyService
DEBUG - GeronimoLog.debug(66) | Invoking ODE using MEX
{MyRoleMex#hqejbhcnphr4tk4allwnld [Client hqejbhcnphr4tk4allwnlc] calling {
http://www.example.org/searchPos/}MyService.search(...)}
DEBUG - GeronimoLog.debug(66) | Message content: <?xml version="1.0"
encoding="UTF-8"?>
<message><parameters><search xmlns="http://www.example.org/searchPos/"
xmlns:sear="http://www.example.org/searchPos/" xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/">
<where xmlns="">ciao</where>
<what xmlns="">ciao</what>
</search></parameters></message>
DEBUG - GeronimoLog.debug(66) | Routed: svcQname {
http://www.example.org/searchPos/}MyService --> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | Commiting ODE MEX
{MyRoleMex#hqejbhcnphr4tk4allwnld [Client hqejbhcnphr4tk4allwnlc] calling {
http://www.example.org/searchPos/}MyService.search(...)}
DEBUG - GeronimoLog.debug(66) | Commiting transaction.
DEBUG - GeronimoLog.debug(66) | Releasing mex hqejbhcnphr4tk4allwnld
DEBUG - GeronimoLog.debug(66) | >>
handleWorkEvent(jobData={mexid=hqejbhcnphr4tk4allwnld, pid={
http://eclipse.org/bpel/sample}Istanze-8, type=INVOKE_INTERNAL})
DEBUG - GeronimoLog.debug(66) | InvokeInternal event for mexid
hqejbhcnphr4tk4allwnld
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.myRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | GET MEX property
org.apache.ode.bpel.partnerRoleSessionId = null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 12.search: MSG RCVD keys=[]
mySessionId=null partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | INPUTMSG: 12.search: routing failed,
CREATING NEW INSTANCE
DEBUG - GeronimoLog.debug(66) | BpelRuntimeContextImpl created for instance
2102. INDEXED STATE={}
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: USING
CORRELATOR 12.search
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: CHECKING for
NEW INSTANCE match
DEBUG - GeronimoLog.debug(66) | INPUTMSGMATCH: Changing process instance
state from ready to active
DEBUG - GeronimoLog.debug(66) | SELECT: PickResponseChannel#9: FOUND match
for NEW instance mexRef={MyRoleMex#hqejbhcnphr4tk4allwnld [Client
hqejbhcnphr4tk4allwnlc] calling {
http://www.example.org/searchPos/}MyService.search(...)}
DEBUG - GeronimoLog.debug(66) | INVOKING PARTNER:
partnerLink={PartnerLinkInstance
partnerLinkDecl=OPartnerLink#12,scopeInstanceId=2154}, op=update
channel=null)
DEBUG - GeronimoLog.debug(66) | INVOKE PARTNER (SEP):
sessionId=hqejbhcnphr4tk4allwnlf partnerSessionId=null
DEBUG - GeronimoLog.debug(66) | Routed: svcQname {
http://www.example.org/searchPos/}MyService --> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | Routed: svcQname {
http://www.example.org/searchPos/}MyService --> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | Invoking in a p2p interaction, partnerrole
{PartnerRoleMex#hqejbhcnphr4tk4allwnlh [PID {
http://eclipse.org/bpel/sample}Istanze-8] calling null.update(...)} - myrole
{MyRoleMex#hqejbhcnphr4tk4allwnli [Client hqejbhcnphr4tk4allwnlh] calling {
http://www.example.org/searchPos/}MyService.update(...)}
DEBUG - GeronimoLog.debug(66) | Setting myRoleMex session ids for p2p
interaction, mySession null - partnerSess hqejbhcnphr4tk4allwnlf
DEBUG - GeronimoLog.debug(66) | SET MEX property
org.apache.ode.bpel.partnerRoleSessionId = hqejbhcnphr4tk4allwnlf
DEBUG - GeronimoLog.debug(66) | Routed: svcQname {
http://www.example.org/searchPos/}MyService --> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
DEBUG - GeronimoLog.debug(66) | invoke() EPR= null ==> BpelProcess[{
http://eclipse.org/bpel/sample}Istanze-8]
ERROR - GeronimoLog.error(108) | Method "run" in class
"org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.
java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:765)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:91)
at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:835)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:204)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:372)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:326)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:337)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:336)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:335)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:332)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
ERROR - GeronimoLog.error(108) | Scheduled job failed;
jobDetail={mexid=hqejbhcnphr4tk4allwnld, pid={
http://eclipse.org/bpel/sample}Istanze-8, type=INVOKE_INTERNAL}
java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:835)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:204)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:372)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:326)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:337)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:336)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:335)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:332)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:765)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:91)
at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
... 17 more
ERROR - GeronimoLog.error(108) | Error while processing transaction,
retrying.
org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:336)
at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:337)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:336)
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:335)
at
org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:332)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:835)
at
org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
at
org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:204)
at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:372)
at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:326)
... 11 more
Caused by: java.lang.NullPointerException
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.invoke(MyRoleMessageExchangeImpl.java:134)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:765)
at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:91)
at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
... 17 more
--
Stefano