This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 81116 - BPELSE is not able to invoke external wsdl
Summary: BPELSE is not able to invoke external wsdl
Status: CLOSED FIXED
Alias: None
Product: soa
Classification: Unclassified
Component: -- Other -- (show other bugs)
Version: 5.x
Hardware: All Windows XP
: P2 blocker (vote)
Assignee: prashantbhagat
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-07-25 22:36 UTC by ekimm
Modified: 2006-08-28 20:47 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Server.log (429.08 KB, application/octet-stream)
2006-07-25 22:37 UTC, ekimm
Details

Note You need to log in before you can comment on or make changes to this bug.
Description ekimm 2006-07-25 22:36:49 UTC
I attempted to run test fhw3g3Invoke under faulthandling.

In the server.log the following occurs,

[#|2006-07-25T10:27:51.262-0700|SEVERE|sun-appserver-pe9.0|com.sun.jbi.component
.com.sun.bpelse-1.0-2com.sun.jbi.engine.bpel.EngineChannel|_ThreadID=14;_ThreadN
ame=BPELSEInOutThread3;_RequestID=e3a8d24c-b1ee-4a0d-a8a7-59ebec1a0f14;|caught e
xception when invoking two way external webservice
java.lang.NullPointerException
        at com.sun.jbi.engine.bpel.EngineChannel.twoWayInvoke(EngineChannel.java
:321)

Excerpt from developer:

From: Prashant Bhagat
Sent: Tue 7/25/2006 11:40 AM
To: Edward Kimm
Cc: Gabriel Badescu; Murali Pottlapelli
Subject: RE: Bpel returning fault?


Ed,

I retested and this time it fails. Can you please file a bug? We have a problem 
here. BPELSE is not able to do the invoke for this case. 

From brief observations I see two issues (1st may not be critical), 

It seems that the related partnerLink is registered multiple times. 
When EngineChannel tries to locate a service endpoint reference for a  given 
partnerLink, it is not able to do so because the partnerLink object references 
do not mach. 


Thanks

Prashant
Comment 1 ekimm 2006-07-25 22:37:21 UTC
Created attachment 32200 [details]
Server.log
Comment 2 prashantbhagat 2006-08-25 18:46:32 UTC
Problem:
This happens when we have a case which has all of the following 3 
characteristics:

-multiple business processes with the same namespace, and 
-each one of them has a partnerLink with an identical name, and 
-all those partnerLinks are mapped to the same Service+Endpoint in the WSDL

In effect, all these three partnerLinks are equivalent. This is now fixed.
Comment 3 Michael Frisino 2006-08-25 19:17:30 UTC
this is fixed "how"? 

What will happen in the scenario described, when multiple similar BPs are deployed?

You may re-close after answering this query.
Comment 4 prashantbhagat 2006-08-25 22:24:52 UTC
It is valid to deploy multiple business processes that have same outbound 
partnerLink. Two partnerLinks are said to be identical if:
-The namespace of the BPELs in which they are defined is identical
-The name of the partnerLinks is identical

Such partnerLinks are considered equivalent and they must be bound to the same 
external endpoint.

The user who reported this bug had a service unit which had multiple business 
processes with such identical partnerLinks. Since this is a valid use case, 
the tests should have passed. However, an expected was reported.

BPEL-SE had a bug which did not support this scenario. Now the bug is fixed to 
support this scenario. 
Comment 5 Michael Frisino 2006-08-25 22:52:46 UTC
Can we clarify the scenario some more. Are you saying this was from scenario where
there was the following

CompAppFoo
--- BPELModule1
--- BPELModule2
--- BPELModule3

where all three BPEL modules included the same Partner wsdl, say
"googleQuery.wsdl" or something like that? 

or are you saying all three BPEL moduels had the same service endpoint address
for the BPEL process itself? Notice that this is a different case from the one
listed above. In this case, we are talking about multiple processes having the
same endpoint. I was under the impression that this was not allowed and that
attempts to deploy > 1 BPEL process with same endpoint will result in deploy
failure due to endpoint conflict.

So please clarify whether this bug applied to only of the above scenarios.
Comment 6 prashantbhagat 2006-08-28 20:47:20 UTC
This bug is similar to the first case that you described. Let me explain with 
a variation. It does not matter whether the BPEL files are in different 
BPELModules or in a single one.
Consider that we have
CompAppFoo
--- BPELModule1
     ---process1.bpel
     ---process2.bpel
     ---process3.bpel

Assume that all these 3 BPELs need to consume the same service endpoint in the 
googleQuery.wsdl

Now assume that process1.bpel, process2.bpel and process3.bpel have the same 
namespace and all of them declare a partnerLink with the SAME name "googlePL", 
for example:
<partnerLink name="googlePL" partnerLinkType="xyz:bar" partnerRole="provider">

This is a valid scenario with the following restriction:
"The partnerLink "googlePL" must be bound to the same service endpoint"

The BPEL project mentioned in this bug was defined as mentioned above. The 
BPEL-SE had a bug whereby a NullPoinerException was being thrown. I have fixed 
the bug to support this scenario.

Now, the other case that you metioned is for the inbound case - that is the 
business process is "providing" web services. There is special case where more 
than one business process can be providing the service using the same service 
endpoint. For such a case the following conditions must be true:
1. The BPELs have a same namespace
2. The BPELs have the same name for the partnerLink which is bound to the 
service endpoint. Note here since we are talking about providing a web 
service "myRole" attribute is relevant.
2. Each BPEL implements a different operation from the portType associated 
with the service endpoint.
This particular case is documented on the Alaska wiki 
http://alaska.stc.com:10000/alaska/Wiki.jsp?page=BPELSE. Scroll towards the 
bottom and under "Usage" section you will see a link "Implementing multiple 
operations from a portType (that is, “splitting” up an implementation of a 
portType) across different bpel files"

Let me know if this helps.




 



These three partnerLinks are considered identical. So they mu
st be all bound to the same concrete service endpoint, lets say the google web 
service.