You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Rob Vincent (JIRA)" <ji...@apache.org> on 2006/06/06 08:05:31 UTC

[jira] Commented: (AXIS2-759) hotupdate fails if xmlbeans is used

    [ http://issues.apache.org/jira/browse/AXIS2-759?page=comments#action_12414917 ] 

Rob Vincent commented on AXIS2-759:
-----------------------------------

I'm receiving a nearly identical stack trace in my log file when I just change a very basic service based on the Version sample.  If I change anything - even the return string or add a file - I get the error.  Reloading axis2 will not work - I need to restart Tomcat.

I only receive the error with Tomcat 5.5.  When I try the same thing with Tomcat 5, it works fine.

My system = Mac OS X 10.4, Tomcat 5.5.


-----------

- Servlet.service() for servlet AxisRESTServlet threw exception
org.apache.axis2.AxisFault: null; nested exception is: 
        java.lang.NullPointerException; nested exception is: 
        org.apache.axis2.AxisFault: null; nested exception is: 
        java.lang.NullPointerException
        at org.apache.axis2.transport.http.util.RESTUtil.processGetRequest(RESTUtil.java:141)
        at org.apache.axis2.transport.http.AxisRESTServlet.doGet(AxisRESTServlet.java:36)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:613)
Caused by: org.apache.axis2.AxisFault: null; nested exception is: 
        java.lang.NullPointerException
        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:318)
        at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:136)
        at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)
        at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:150)
        at org.apache.axis2.transport.http.util.RESTUtil.processGetRequest(RESTUtil.java:138)
        ... 17 more
Caused by: java.lang.NullPointerException
        at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:84)
        ... 21 more
- Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
        at org.apache.catalina.connector.Response.getWriter(Response.java:606)
        at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
        at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
        at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
        at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
        at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
        at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
        at org.apache.jsp.axis2_002dweb.Error.error500_jsp._jspService(org.apache.jsp.axis2_002dweb.Error.error500_jsp:97)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)
        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:284)
        at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:228)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:613)
Jun 5, 2006 10:36:50 PM org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing ErrorPage[errorCode=500, location=/axis2-web/Error/error500.jsp]
java.lang.IllegalStateException: getOutputStream() has already been called for this response
        at org.apache.catalina.connector.Response.getWriter(Response.java:606)
        at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
        at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
        at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
        at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
        at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
        at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
        at org.apache.jsp.axis2_002dweb.Error.error500_jsp._jspService(org.apache.jsp.axis2_002dweb.Error.error500_jsp:97)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)
        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:284)
        at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:228)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:613)



> hotupdate fails if xmlbeans is used
> -----------------------------------
>
>          Key: AXIS2-759
>          URL: http://issues.apache.org/jira/browse/AXIS2-759
>      Project: Apache Axis 2.0 (Axis2)
>         Type: Bug

>   Components: deployment
>     Versions: 1.0
>  Environment: WinXP. Tomcat 5.5.7. jdk1.5.0_02.
>     Reporter: Kent Tong
>     Assignee: Deepal Jayasinghe
>  Attachments: files.zip
>
> 1) Make sure hotupdate is enabled.
> 2) Deploy a service which uses xmlbeans for data binding.
> 3) Create a client to call the web service and make sure it works fine.
> 4) Make some irrelevant changes to the schema (eg, adding a child element to <sequence> whose minOccurs is 0) and generate the skeleton code again.
> 5) Update the aar file. 
> 6) Call the web service. It will fail. A smaple stack trace is shown below. It works if Tomcat is restarted. Restarting the Axis2 web app does NOT help. I suspect it has something to be with classloaders.
> - Servlet.service() for servlet AxisServlet threw exception
> java.lang.ExceptionInInitializerError
>         at sun.misc.Unsafe.ensureClassInitialized(Native Method)
>         at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:25)
>         at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:122)
>         at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917)
>         at java.lang.reflect.Field.getFieldAccessor(Field.java:898)
>         at java.lang.reflect.Field.get(Field.java:357)
>         at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:768)
>         at com.foo.schema.UploadRequestDocument.<clinit>(UploadRequestDocument.java:20)
>         at com.foo.schema.UploadRequestDocument$Factory.parse(UploadRequestDocument.java:183)
>         at com.foo.fs.FileServiceMessageReceiverInOut.fromOM(FileServiceMessageReceiverInOut.java:105)
>         at com.foo.fs.FileServiceMessageReceiverInOut.invokeBusinessLogic(FileServiceMessageReceiverInOut.java:50)
>         at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)
>         at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
>         at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
>         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
>         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.RuntimeException: Could not instantiate SchemaTypeSystemImpl (java.lang.reflect.InvocationTargetException): is the version of xbean.jar correct?
>         at schemaorg_apache_xmlbeans.system.s621759F9A62F0E4A21AFE4D2C94DF9F7.TypeSystemHolder.loadTypeSystem(Unknown Source)
>         at schemaorg_apache_xmlbeans.system.s621759F9A62F0E4A21AFE4D2C94DF9F7.TypeSystemHolder.<clinit>(Unknown Source)
>         ... 31 more
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>         ... 33 more
> Caused by: org.apache.xmlbeans.SchemaTypeLoaderException: XML-BEANS compiled schema: Could not locate compiled schema resource schemaorg_apache_xmlbeans/system/s621759F9A62F0E4A21AFE4D2C94DF9F7/index.xsb (schemaorg_apache_xmlbeans.system.s621759F9A62F0E4A21AFE4D2C94DF9F7.index) - code 0
>         at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$XsbReader.<init>(SchemaTypeSystemImpl.java:1504)
>         at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.initFromHeader(SchemaTypeSystemImpl.java:260)
>         at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.<init>(SchemaTypeSystemImpl.java:183)
>         ... 37 more
> - Servlet.service() for servlet jsp threw exception
> java.lang.IllegalStateException: getOutputStream() has already been called for this response
>         at org.apache.catalina.connector.Response.getWriter(Response.java:596)
>         at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
>         at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
>         at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
>         at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
>         at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
>         at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
>         at org.apache.jsp.axis2_002dweb.Error.error500_jsp._jspService(org.apache.jsp.axis2_002dweb.Error.error500_jsp:97)
>         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
>         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:673)
>         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
>         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
>         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>         at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:362)
>         at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:283)
>         at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:227)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
>         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
>         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
> May 21, 2006 8:46:32 PM org.apache.catalina.core.StandardHostValve custom
> SEVERE: Exception Processing ErrorPage[errorCode=500, location=/axis2-web/Error/error500.jsp]
> java.lang.IllegalStateException: getOutputStream() has already been called for this response
>         at org.apache.catalina.connector.Response.getWriter(Response.java:596)
>         at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
>         at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
>         at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
>         at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
>         at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
>         at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
>         at org.apache.jsp.axis2_002dweb.Error.error500_jsp._jspService(org.apache.jsp.axis2_002dweb.Error.error500_jsp:97)
>         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
>         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:673)
>         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
>         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
>         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>         at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:362)
>         at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:283)
>         at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:227)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
>         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
>         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org