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.
Summary: | ServiceRef is not properly created if the project is a generated sample app | ||
---|---|---|---|
Product: | webservices | Reporter: | Peter Liu <petertliu> |
Component: | Client | Assignee: | Milan Kuchtiak <mkuchtiak> |
Status: | VERIFIED FIXED | ||
Severity: | blocker | CC: | abadea, Anda77, mkuchtiak, rcruz |
Priority: | P2 | ||
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | DEFECT | Exception Reporter: | |
Bug Depends on: | 112766 | ||
Bug Blocks: | 105645 |
Description
Peter Liu
2007-08-07 20:37:52 UTC
I see 2 problems actually here : 1. The ServiceRef object isn't created for @WebServiceRef annotation when the service class is missing. This is in due to Annoation Model architecture, when TypeElements require to be resolved (The fully qualified name for the service class cannot be obtained when the class doesn't exist). I am afraid we cannot do anything with this. 2. Edit WS Attributes cashes the information from Annotation Model. Even, when Service class (source file) is created in the project (case 1), the "Edit WS Attributes" dialog doesn't get the actual model. The information from J2EE Annotation Model should be obtained "on fly" when the dialog is open. Reassigning back to Peter for evaluation as I don't know who is the owner of AM security panel. It looks like we will just have to document the first issue. As for the second issue, I doubled checked. The AM security panel is not caching the annotation model at all. The AM security panel recheck for the service refs using model.runReadAction(). So, I don't this is the issue. I am reassigning this back to Milan. I found the reason for this issue - I mean for the second problem I described. It's caused by the obscure way how we are adding build/generated/wsimport/client directory to source roots. We hack somehow the WebProject's SourcePathImplementation:getResources(). Problem is that this method is not called when client artifacts are generated from wsdl file (build action), only when a WS Clent is created by the wizard. The result is that java source infracstructure cannot react in this case, that means java source infracstructure is not notified that java artifacts are generated in build/generated/wsimport/client. We need to solve this differently : similarly as in java project where we add/remove, programaticaly, the build/generated/wsimport/client to compile classpath, when needed, that means : when build/generated/wsimport/client is created or when build/generated/wsimport/client is removed. I'll try to fix this issue for Beta 1. Provided build/generated/wsimport/client is under source roots the problem no.2 is gone. I cannot reproduce the issue since the Blueprints Sample -> StockService project cannot be created. This should be fixed. See also the fix for issue 112736. v. |