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 187145

Summary: [69cat] Projects with a WS client created on one machine will not load on another.
Product: webservices Reporter: swpalmer <swpalmer>
Component: ClientAssignee: Denis Anisimov <ads>
Status: RESOLVED FIXED    
Severity: normal CC: joshuachung
Priority: P3    
Version: 6.x   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:

Description swpalmer 2010-06-03 14:16:49 UTC
Product Version = NetBeans IDE 6.9 RC2 (Build 201005312001)
Operating System = Windows XP version 5.1 running on x86
Java; VM; Vendor = 1.6.0_20
Runtime = Java HotSpot(TM) Client VM 16.3-b01

Until you actually use your instance of NB to *create* a web service client, the JAX-WS-ENDORSED library does not exist.  So if you create a WS client in a project and check it in to a version control system, it will not work for a colleague unless he has also created a web service client with his instance of NB.

The JAX-WS-ENDORSED library does not appear in the list of libraries until after that instance of NB is used to create a WS client, so the other party is not able to add it manually.

The other question is why the existing library named "JAX-WS 2.2" is not used anyway?
Comment 1 Milan Kuchtiak 2010-06-09 12:35:55 UTC
The JAX-WS-ENDORSED is created dynamically when :

1. new WS Client is created in J2SE Project
2. A J2SE project containing WS client(s) is open

It could happen, under some circumstances, that JAX-WS-ENDORSED reference exists in project.properties but the library itself isn't created.

This is such a use case:

- create J2SE project
- add client
- remove client
- open that J2SE project in new IDE

Reporter, please confirm if this is the case ?

Thanks.

Anyway, we need to check project for JAX-WS-ENDORSED reference, not for WS clients.
Comment 2 Milan Kuchtiak 2010-06-09 13:47:16 UTC
> The other question is why the existing library named "JAX-WS 2.2" is not used
anyway?

JAX-WS-ENDORSED is a subset of JAX-WS 2.2.
The endorsed jars are included at the beginning of boot classpath and it's desirable to have these jars as minimal as possible.
Comment 3 swpalmer 2010-06-09 15:20:06 UTC
The use case outlined above is not what was done.  The client was not removed.

I did:

- create J2SE project
- add client
- open that J2SE project in new IDE

at that point there are reference problems and the project won't build.

The workaround is to use the new IDE to add a client to some dummy project prior to opening the original shared project.
Comment 4 Milan Kuchtiak 2010-06-10 08:41:31 UTC
The reference problem dialog occurs - that's true.
Nevertheless, the library should be created if there are WS Clients in J2SE project. Please, check if JAX-WS-ENDORSED is really missing in Library Manager.
Comment 5 swpalmer 2010-06-10 11:35:02 UTC
Yes, as stated in my original description, JAX-WS-ENDORSED is really missing in Library Manager. It does not show up by opening a pre-created project, you must create a client with that instance of NB
Comment 6 Milan Kuchtiak 2010-06-10 12:35:32 UTC
Thanks,
Comment 7 Milan Kuchtiak 2010-07-08 13:54:25 UTC
The issue was fixed together with issue 187673.
Now, when (J2SE) project is open, and WS references are found, the JAX-WS-ENDORSED is added first, then "broken-references" check is executed.

Before that fix the endorsed library was not added when the broken-references test was positive.

That's why we were able to reproduce the issue with 6.9 RC2, but not with development builds.
Comment 8 Mr_and_Mrs_D 2012-01-26 16:17:57 UTC
Updated from netbeans 7.0.1 to 7.1 and I am having the same problem - opened  a project that was working fine in 7.0.1 and in 7.1 I got (resolve reference problems dialogue) :

Problem: The project uses the class library called "JAX-WS-ENDORSED" but the classpath items of this library are missing.
Solution: Click Resolve to open the Library Manager and locate the missing classpath items of "JAX-WS-ENDORSED" library.

Created a  throwaway SE project and added a websercvice client for it (as suggested in http://stackoverflow.com/questions/6207190/how-do-i-reference-libraries-in-netbeans) but the java/modules/ext/jaxws22/api/jaxws-api.jar was not created as I expected - any help ?

I don't think it's resolved in all
Comment 9 Mr_and_Mrs_D 2012-01-28 16:19:20 UTC
I had to go to the imported project  > resolve reference
problems dialogue > delete the references from there which were pointing to the old NB folders (pic : http://www.bild.me/bild.php?file=8525103NETBEANS_LIBRARIES_MISSING.jpg)  and then create the web service and then add the library's jars by hand : http://s1.bild.me/bilder/060112/8781673NB_solved.jpg

side note : I am having the http://netbeans.org/bugzilla/show_bug.cgi?id=195792 also which I did not have in 7.0.1
Comment 10 Denis Anisimov 2012-10-10 10:47:44 UTC
*** Bug 217016 has been marked as a duplicate of this bug. ***
Comment 11 Denis Anisimov 2012-10-11 08:23:22 UTC
The issue itself is the absolute path usage of jar file's URLs instead of 
jar:nbinst protocol.
This issue is fixed now for 7.3.
It means that any future release ( 7.3+ ) will not be issued 
(upgrading 7.3 version).
But any upgrade from version before 7.3 still has an issue.
To fix the latter behavior I've introduced additional class that removes 
the JAX-WS-ENDORSED library ( which is recreated on demand ) in case it is 
broken. That's a temporary fix which should be removed in the future releases.
web-main#30a4de983fd5
Comment 12 Quality Engineering 2012-10-12 02:05:07 UTC
Integrated into 'main-golden', will be available in build *201210120002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/30a4de983fd5
User: Denis Anisimov <ads@netbeans.org>
Log: Fix for BZ#187145 - [69cat] Projects with a WS client created on one machine will not load on another.