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 166115 - JAX-WS deployment regression
Summary: JAX-WS deployment regression
Status: RESOLVED WORKSFORME
Alias: None
Product: webservices
Classification: Unclassified
Component: JAX-WS (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker with 1 vote (vote)
Assignee: Milan Kuchtiak
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-27 16:01 UTC by tbrantb
Modified: 2009-09-11 17:14 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description tbrantb 2009-05-27 16:01:20 UTC
In a netbeans web project I create a new web service from WSDL (local WSDL). The code seems to generate properly and
clean/builds are successful. However when I deploy the webapp to glassfish V3 from the IDE using the "Run" or "Debug"
actions. I get an exception at run time and the web service does not function. See Stack Trace below. This problem
occurs in Netbeans 6.7 M3 and Beta and both Linux and Windows. The problem does not occur in Netbeans 6.5. The problem
does not appear to be the WSDL as I have tried this with very simple WSDLs. I should also mention if I create the war
from Netbeans and deploy to glassfish by copying to glassfish's autodeploy directory instead of running from the IDE,
then the problem also does not occur. This appears to be some form of web service deployment problem that was introduced
in 6.7. 

This problem has been reported a couple times on the mailing list but no fixes have been suggested.
http://www.nabble.com/do-not-have-a-property-of-the-name-td23619243.html 


Please Fix

javax.xml.ws.WebServiceException: class org.tempuri.GetData do not have a property of the name {http://tempuri.org/}value

        at com.sun.xml.ws.client.sei.BodyBuilder$DocLit.<init>(BodyBuilder.java:202)

        at com.sun.xml.ws.client.sei.SEIMethodHandler.<init>(SEIMethodHandler.java:81)

        at com.sun.xml.ws.client.sei.SyncMethodHandler.<init>(SyncMethodHandler.java:84)

        at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:82)

        at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:589)

        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:329)

        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:311)

        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:304)

        at javax.xml.ws.Service.getPort(Service.java:92)

        at org.tempuri.Service1.getWs2007HttpSecureEndpoint(Service1.java:56)

        at GetResult.processRequest(GetResult.java:45)

        at GetResult.doGet(GetResult.java:74)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)

        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)

        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)

        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)

        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)

        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)

        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Caused by: javax.xml.bind.JAXBException: {http://tempuri.org/}value is not a valid property on class org.tempuri.GetData

        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getElementPropertyAccessor(JAXBContextImpl.java:926)

        at com.sun.xml.ws.client.sei.BodyBuilder$DocLit.<init>(BodyBuilder.java:199)

        ... 39 more
Comment 1 Vince Kraemer 2009-05-27 23:16:30 UTC
are you deploying to v3 Prelude or v3 Preview?
Comment 2 tbrantb 2009-05-27 23:56:18 UTC
Glassfish V3 prelude
Comment 3 Milan Kuchtiak 2009-05-28 09:31:46 UTC
I cannot reproduce this issue with latest builds.
Some time ago I was getting this issue when I had "Deploy on Save" option checked in my project (Project -> Properties
-> Run section).

Npte: GlassFish V3 Prelude (without Metro plugin) doesn't support J2EE Web Services specification. It behaves like
Tomcat server, and requires to have sun-jaxws.xml and some additional entries in web.xml, e.g.:
    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>S</servlet-name>
        <servlet-class>s.S</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>WebSearchWS</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        </servlet>
    <servlet-mapping>
        <servlet-name>WebSearchWS</servlet-name>
        <url-pattern>/WebSearchWS</url-pattern>
    </servlet-mapping>

Please check if this configuration stuff was created in your project.
To use web services with GlassFish V23 Prelude, I'd recommend to install Metro stack in GlassFish V3 Update Center.
Comment 4 tbrantb 2009-05-28 15:11:07 UTC
I already had the Metro stack installed in glassfish. I tried in the latest nightly and no longer had the problem. I
also disabled deploy on save in 6.7 beta and that fixed the problem as well.
Comment 5 cs94njw 2009-07-16 11:47:38 UTC
I am having this problem deploying to Tomcat 5.5.
Comment 6 johncorrigan 2009-09-06 09:42:52 UTC
I too am having this problem with NetBeans 6.5.1 and Tomcat 6.0.  Disabling deploy on save seems to be a work-around but
I wouldn't call it a fix.
Comment 7 Milan Kuchtiak 2009-09-09 17:34:39 UTC
This was caused by Deploy on Save feature introduced in Netbeans 6.5.

The reason for the deployment failure was this.

WS from WSDL wizard generates the WS implementation class.
Also wsimport generates JAX-WS stub classes, like SEI class into build/generated-sources/jax-ws directory

The WS implementation class looks like this :

@WebService(serviceName = "WebSearchWS", portName = "WebSearchWSSoap", endpointInterface = "search.WebSearchWSSoap", ..)
public class SearchService {
    public java.lang.String search(java.lang.String keyWord) {
        ...
    }
}

Though, there no compilation dependency on SEI class (search.WebSearchWSSoap), the deployment fails if the SEI class is
missing, and it fails with the error reported here.

Why this had happened is due to "Deploy on Save" feature.
The "feature" thinks that java source files generated in build/generated-sources directory doesn't belong to project and
they are not compiled to build/web/WEB-INF/classes.

Please, disable "Deploy on Save" in Netbeans 6.5/6.7 if your project contains web services generated from WSDL, or WS
clients.

I was testing this scenario with latest NB Build (GlassFish V3, Tomcat) and everything works correct.
Comment 8 teodoro 2009-09-11 17:14:18 UTC
I'm having the same problem with netbeans 6.5.1 and Glassfish 2.1 and just one of my web services.
This web service is a wrapper on a ejb.
I have an .ear and I realize that I need to force undeploy from server on service tab and then deploy it from project tab.
If I just deploy itit fails to generate ws support on server just for that ws.