BPEL process with invoke? [message #874467] |
Sun, 20 May 2012 20:49  |
Eclipse User |
|
|
|
Hello, I tried to make a BPEL process with a simple invoke of an external web service, which asks for the bank number and returns the name of the bank.
Unfortunately, this doesn't work. I get an error message and a couple of warnings, and I'm unable to put the correct settings in the deploy.xml.
Quote:Error: The role named "BLZServiceProvider" on this partnerLinkType uses portType "wsdl:BLZServicePortType" which is not defined anywhere. - BLZAbfrageProcess.bpel (line 25)
Warnings:
WS-I: (BP2105) A wsdl:import element in the WSDL namespace under the wsdl:definitions element, is preceded by child elements other than wsdl:documentation elements. BLZAbfrageProcessArtifacts.wsdl (line 2)
The activity <bpel:invoke> refers to a bpel:partnerLink (via the attribute "partnerLink") - this bpel:partnerLink needs to be defined correctly. BLZAbfrageProcess.bpel (line 71)
The "D:\Admin\Dokumente\Eclipse\Eclipse Workspace\Workspace 2\BLZAbfrage\bpelContent\BLZService.wsdl" document could not be imported while parsing "platform:/resource/BLZAbfrage/bpelContent/BLZAbfrageProcessArtifacts.wsdl" BLZAbfrageProcessArtifacts.wsdl (line 13)
No grammar constraints (DTD or XML schema) detected for the document. deploy.xml (line 1)
The error message shouldn't happen, because BLZServicePortType is defined in the BLZService.wsdl. I've seen similiar questions from years ago, but there was no answer then.
Can somebody give me a hint what to do here?
My next goal is to combine two webservices, but at the moment I can't even invoke one external WS without problems.
Thank you very much,
Alex
|
|
|
|
Re: BPEL process with invoke? [message #874921 is a reply to message #874853] |
Mon, 21 May 2012 15:59   |
Eclipse User |
|
|
|
Thank you very much, replacing the absolute path with location="BLZService.wsdl" seemed to work - most of the error messages vanished. The file was definitly there (just normal subdirectories - no funny stuff like external harddrives, directory links (like C:\Programme pointing to C:\Program Files) or whatever), so I guess the space in the path was the issue.
But then again, yesterday when trying to make the invoke, I had trouble to add the external WSDL file ("Browse for a WSDL to import"). Specifiying the URL did not work (error: "could not load"), so I imported the external WSDL to my project. But even then, "Import Source: Resource" did not work (it wouldn't show me the files), so I had to use the third way: "Import Source: File".
I tried to reproduce this strange behaviour today, but all 3 WSDL import variants (Resource, File, external URL) seem to work fine, so maybe eclipse was just glitched yesterday.
[Updated on: Mon, 21 May 2012 16:00] by Moderator
|
|
|
Re: BPEL process with invoke? [message #874931 is a reply to message #874921] |
Mon, 21 May 2012 16:22   |
Eclipse User |
|
|
|
Today I have another problem, though: My process is deployed now, but doesn't seem to work.
localhost:8080 | ode | processes | BLZAbfrageProcess?wsdl shows the WSDL of my process just fine, but if I try to call it:
localhost:8080 | ode | processes | BLZAbfrageProcess | process?input=test (input doesn't really matter, since for the moment, I assigned a fixed value ("30020900") to the variable which is assigned to the external webservice)
the expected answer would be <ns1:bezeichnung>Citibank Privatkunden</ns1:bezeichnung> which is the name of the bank with the bank number 30020900 in Germany.
Instead, my browser loads forever and then throws an exception:
<Exception>org.apache.ode.axis2.OdeFault: Timeout or execution error when waiting for response to MEX {MyRoleMex#hqejbhcnphr7ar15j03ofn [Client hqejbhcnphr7ar15j03ofm] calling {http:|| example.org | BLZAbfrageNamespace}BLZAbfrageProcess.process(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@10afd2c timed out(120000 ms) when waiting for a response!
at org.apache.ode.axis2.ODEService.onAxisMessageExchange(ODEService.java:166)
at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:69)
at org.apache.ode.axis2.hooks.ODEMessageReceiver.invokeBusinessLogic(ODEMessageReceiver.java:52)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125)
at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119)
at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:799)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242)
at org.apache.ode.axis2.hooks.ODEAxisServlet.doGet(ODEAxisServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
</Exception>
I thought maybe the external webservice is unavailable at the moment, but when testing it with an external source, it seems to work fine:
http: || www.service-repository.com | service | overview | -210897616
edit: oh god, the "You cannot use links until you have posted more than 25 messages"-rule is killing me. It won't even let me use localhost URLs.
[Updated on: Mon, 21 May 2012 16:33] by Moderator
|
|
|
|
|
Re: BPEL process with invoke? [message #915746 is a reply to message #875411] |
Mon, 17 September 2012 18:22  |
Eclipse User |
|
|
|
I am wondering how you assign parameters to the process.
I would start a new project with a client link (which is the main process).
Then add another partner link where you assign a partner role to the process you want to invoke. Just copy your wsdl file into the folder BPELContent and refresh your project.
Then you can model your process and assign the input parameters to the process.
Then it is basically the structure assign (input parameters) ->invoke process ->assign (output parameters).
Hope this helps!
|
|
|
Powered by
FUDForum. Page generated in 0.20231 seconds