Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » BPEL Designer » BPEL process with invoke?("portType not defined anywhere")
BPEL process with invoke? [message #874467] Sun, 20 May 2012 20:49 Go to next message
Alex G is currently offline Alex G
Messages: 3
Registered: May 2012
Junior Member
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 #874853 is a reply to message #874467] Mon, 21 May 2012 13:14 Go to previous messageGo to next message
Robert Brodt is currently offline Robert Brodt
Messages: 592
Registered: August 2010
Location: Colorado Springs, CO
Senior Member

Hmm, I wonder if this has anything to do with the editor not being able to find your BLZService.wsdl document - looks like the "location" specified in your bpel and artifacts.wsdl files is an absolute path to "D:\Admin\Dokumente\Eclipse\Eclipse Workspace\Workspace 2\BLZAbfrage\bpelContent\BLZService.wsdl". Are you sure the document is there? Maybe there's an issue with spaces in the location path?

I was able to correct the problem by simply changing the location to a project-relative path in both BLZAbfrageProcessArtifacts.wsdl and BLZAbfrageProcess.bpel (replace the absolute path with just location="BLZService.wsdl", since it's in the bpelContent folder)

Please let me know if that document does exist in your D:\Admin\Dokumente... folder but is just not being found by the BPEL editor's resource resolver - this may be a bug.

Thanks!
Bob
Re: BPEL process with invoke? [message #874921 is a reply to message #874853] Mon, 21 May 2012 15:59 Go to previous messageGo to next message
Alex G is currently offline Alex G
Messages: 3
Registered: May 2012
Junior Member
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]

Report message to a moderator

Re: BPEL process with invoke? [message #874931 is a reply to message #874921] Mon, 21 May 2012 16:22 Go to previous messageGo to next message
Alex G is currently offline Alex G
Messages: 3
Registered: May 2012
Junior Member
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]

Report message to a moderator

Re: BPEL process with invoke? [message #875411 is a reply to message #874931] Tue, 22 May 2012 13:44 Go to previous messageGo to next message
Robert Brodt is currently offline Robert Brodt
Messages: 592
Registered: August 2010
Location: Colorado Springs, CO
Senior Member

Hi Alex,

I'm seeing a fault being returned by the BLZService:

<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsa="http://www.w3.org/2005/08/addressing">
<soapenv:Header>
<wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action>
<wsa:RelatesTo>uuid:hqejbhcnphr7atvfnt63hs</wsa:RelatesTo>
<wsa:FaultDetail>
<wsa:ProblemAction>
<wsa:Action>http://thomas-bayer.com/blz/getBank</wsa:Action>
</wsa:ProblemAction>
</wsa:FaultDetail>
</soapenv:Header>
<soapenv:Body>
<soapenv:Fault>
<faultcode>wsa:ActionNotSupported</faultcode>
<faultstring>The [action] cannot be processed at the receiver.</faultstring>
<detail />
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

Is this the same thing you're getting? When I increase Ode logging to DEBUG, it prints out the transmitted soap message:

<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://www.thomas-bayer.com:80/axis2/services/BLZService</addr:To>
<addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">http://thomas-bayer.com/blz/getBank
</addr:Action>
<addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing">
<addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address>
</addr:ReplyTo>
<addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr7atvr9qek26</addr:MessageID>
</soapenv:Header>
<soapenv:Body>
<odens:getBank xmlns:odens="http://thomas-bayer.com/blz/">
<parameters>
<getBank xmlns="http://thomas-bayer.com/blz/">
<tns:blz xmlns:tns="http://thomas-bayer.com/blz/">30020900</tns:blz>
</getBank>
</parameters>
</odens:getBank>
</soapenv:Body>
</soapenv:Envelope>


Is this what you would expect too?
Re: BPEL process with invoke? [message #907328 is a reply to message #874467] Mon, 03 September 2012 15:21 Go to previous messageGo to next message
Laura Lane is currently offline Laura Lane
Messages: 1
Registered: September 2012
Junior Member
Hi,

I'm getting the following error:
The role named "CustomerServiceProvider" on this partnerLinkType uses portType "CustomerPortType" which is not defined anywhere.

Although the CustomerPortType is defined in the WSDL file!!!

Can anyone help plz

Attached are the project files.

Thanks

[Updated on: Mon, 03 September 2012 15:23]

Report message to a moderator

Re: BPEL process with invoke? [message #915746 is a reply to message #875411] Mon, 17 September 2012 18:22 Go to previous message
Andi Maier is currently offline Andi Maier
Messages: 5
Registered: July 2012
Junior Member
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!
Previous Topic:Problem with BPEL installation
Next Topic:Fault Handling in BPEL
Goto Forum:
  


Current Time: Sat Aug 30 08:39:24 EDT 2014

Powered by FUDForum. Page generated in 0.02128 seconds