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 164544 - CompApp should only package used WSDL/XSD files in generated BC SU
Summary: CompApp should only package used WSDL/XSD files in generated BC SU
Status: NEW
Alias: None
Product: soa
Classification: Unclassified
Component: Composite Application (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: Jun Qian
URL: http://n2.nabble.com/JMS-BC%2C-unable...
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-06 01:44 UTC by Jun Qian
Modified: 2009-05-07 22:48 UTC (History)
3 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
CompApp BC SU packaging (38.58 KB, image/jpeg)
2009-05-06 01:46 UTC, Jun Qian
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jun Qian 2009-05-06 01:44:58 UTC
If multiple WSDL documents with identical content except for concrete binding configuration get packaged in a BC SU jar
file, the BC has no way to determine which WSDL document to load and therefore which configuration to use. Depending on
the order of WSDL parsing in the BC, one configuration would overwrite the other.

One way to reproduce this issue: 

1. Create a new EJB project
2. Create a new (concrete) WSDL document (SOAP/RPC Literal)
3. Create a new Web Service from the new WSDL file
4. Create a new CompApp project
5. Drag the EJB Project and drop it inside CompApp project's CASA editor
6. Build the CompApp project
7. Right-click on the WSDL port and selects "clone WSDL port to edit", and then changes the SOAP address location.
8. Clean and Build the CompApp project
9. Examine the content of <CompApp>/build/sun-http-binding.jar (which is the service unit to be deployed into HTTP BC).
There are two WSDL files with identical content except for the SOAP address location configuration.
Comment 1 Jun Qian 2009-05-06 01:46:32 UTC
Created attachment 81603 [details]
CompApp BC SU packaging
Comment 2 Jun Qian 2009-05-07 22:48:20 UTC
The root cause of this issue is that the CompApp packages all the WSDL/XSD files defined in the SU project and the CA
project, whether needed or not, into the BC SU jar. Since the CASA file has knowledge of which WSDLs are actually needed
and which are not, CompApp should be able to pick and choose WSDL files, and produce a more compact BC SU jar. This will
solve the runtime BC issue and also make BC perform more efficient.

Before this is implemented, there are a few workarounds to the current port configuration conflict issue:

(1) Remove the concrete service port definition from the WSDL file in the SU project. Usually an abstract WSDL is all
you need in an SU project.

or

(2) Remove the existing port defined in the SU project (or the cloned version) from CASA editor. Drag and Drop a new
binding from CASA's binding palette, and connect and configure it. Since the new port resides in a different namespace,
the port configuration conflict is avoided.