<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    NullPointerException when deploying JAX-WS web-service in com.sun.xml.ws.policy.jaxws.PolicyWSDLParserExtension line 980.
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="https://community.jboss.org/people/jfitzpatrick">John Fitzpatrick</a> in <i>JBoss Web Services</i> - <a href="https://community.jboss.org/message/647709#647709">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>Hi There,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I have been struggling to deploy a web-application which implements two JAX-WS endpoints, one of which uses the provider API and the other using the POJO method.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>My environment:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>jbossws-metro-3.3.1</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Java Version: 1.6.0.20</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>JBoss Version: 5.1.0.GA</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>OS: Ubuntu 10.04 LTS Desktop</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>What I do:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Implement a web-application that implements two web-service endpoints, one using the JAX-WS provider API and the other using the POJO approach with relevant @WebService annotation. Example code snippets:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>AddNumbersImpl.java:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>@ServiceMode(value=Service.Mode.PAYLOAD)</p><p>@WebServiceProvider(portName="AddNumbersPort",</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; serviceName="AddNumbersService",</p><p><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; targetNamespace="</span><a class="jive-link-external-small" href="http://duke.example.org" target="_blank">http://duke.example.org</a><span>",</span></p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; wsdlLocation="WEB-INF/wsdl/AddNumbers.wsdl")</p><p>public class AddNumbersImpl implements Provider&lt;Source&gt; {</p><p>&#160; .... body of class here</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>SubtractNumbersImpl.java</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>@WebService(&#160;&#160;&#160; serviceName = "SubtractNumbersService",</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; portName = "SubtractNumbersPort",</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; endpointInterface = "provider.server.SubtractNumbersPortType" )</p><p>public class&#160; SubtractNumbersImpl {</p><p> .... body of class here</p><p>}</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I have setup web.xml with all of the relevant servlets and mappings and corresponding wsdl files.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The SubtractNumbersImpl class has a single method called subtractNumbers which throws a single exception.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>When I deploy my web-application, I get the following stack trace:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>12:35:16,621 ERROR [AbstractKernelController] Error installing to Real: name=vfszip:/opt/jboss/jboss-5.1.0.GA/server/web/deploy/jaxws-provider.war/ state=PreReal mode=Manual requiredState=Real</p><p>org.jboss.deployers.spi.DeploymentException: Error during deploy: vfszip:/opt/jboss/jboss-5.1.0.GA/server/web/deploy/jaxws-provider.war/</p><p>&#160;&#160;&#160; at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:177)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)</p><p>&#160;&#160;&#160; at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)</p><p>&#160;&#160;&#160; at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)</p><p>&#160;&#160;&#160; at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)</p><p>&#160;&#160;&#160; at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)</p><p>&#160;&#160;&#160; at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)</p><p>&#160;&#160;&#160; at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)</p><p>&#160;&#160;&#160; at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)</p><p>&#160;&#160;&#160; at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)</p><p>&#160;&#160;&#160; at org.jboss.Main.boot(Main.java:221)</p><p>&#160;&#160;&#160; at org.jboss.Main$1.run(Main.java:556)</p><p>&#160;&#160;&#160; at java.lang.Thread.run(Thread.java:619)</p><p>Caused by: javax.xml.ws.WebServiceException: Failed to build METRO runtime model</p><p>&#160;&#160;&#160; at org.jboss.wsf.stack.metro.metadata.RuntimeModelDeploymentAspect.start(RuntimeModelDeploymentAspect.java:135)</p><p>&#160;&#160;&#160; at org.jboss.webservices.integration.deployers.WSDeploymentAspectDeployer.internalDeploy(WSDeploymentAspectDeployer.java:107)</p><p>&#160;&#160;&#160; at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)</p><p>&#160;&#160;&#160; at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)</p><p>&#160;&#160;&#160; ... 29 more</p><p>Caused by: java.lang.NullPointerException</p><p>&#160;&#160;&#160; at com.sun.xml.ws.policy.jaxws.PolicyWSDLParserExtension.finished(PolicyWSDLParserExtension.java:980)</p><p>&#160;&#160;&#160; at com.sun.xml.ws.wsdl.parser.DelegatingParserExtension.finished(DelegatingParserExtension.java:183)</p><p>&#160;&#160;&#160; at com.sun.xml.ws.wsdl.parser.WSDLParserExtensionFacade.finished(WSDLParserExtensionFacade.java:328)</p><p>&#160;&#160;&#160; at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:229)</p><p>&#160;&#160;&#160; at com.sun.xml.ws.server.EndpointFactory.getWSDLPort(EndpointFactory.java:513)</p><p>&#160;&#160;&#160; at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:199)</p><p>&#160;&#160;&#160; at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467)</p><p>&#160;&#160;&#160; at org.jboss.wsf.stack.metro.DeploymentDescriptorParserExt.parseAdapters(DeploymentDescriptorParserExt.java:295)</p><p>&#160;&#160;&#160; at org.jboss.wsf.stack.metro.DeploymentDescriptorParserExt.parse(DeploymentDescriptorParserExt.java:171)</p><p>&#160;&#160;&#160; at org.jboss.wsf.stack.metro.metadata.RuntimeModelDeploymentAspect.start(RuntimeModelDeploymentAspect.java:111)</p><p>&#160;&#160;&#160; ... 32 more</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>If I modify the SubtractNumbers service so that no exception is thrown then the application deploys without any problems.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>What I Expect:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The web-application should deploy without any exceptions being thrown.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Detailed Replication Steps:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Attached to this post is a zip file containing the test case I am using to replicate this error.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Detailed steps to reproduce the problem:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Pre-requisites:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>JBoss 5.1.0.GA</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Sun Java 6 JDK</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>JAX-WS RI 2.1.7</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>jbossws-metro-3.3.1</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>1. Download the attached zip file.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>2. Extract to a directory somewhere.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>3. Open a terminal and move into the directory where the files were extracted.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>3. Set JAXWS_HOME to the JAX-WS home.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>export JAXWS_HOME=/home/jfitzpatrick/Downloads/jaxws-ri-20090416-2.1.7/</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>4. Build the server side code.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>ant build-server-wsdl</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>5. Create the war file.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>ant create-war</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>6. Copy the war file to the jboss deployment directory.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>cp build/war/jaxws-provider.war /opt/jboss/jboss-5.1.0.GA/server/web/deploy</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>7. Start JBoss.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>/opt/jboss/jboss-5.1.0.GA/bin/run.sh -c web -b 0.0.0.0</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>8. Observe the exception described above.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>If the above steps are repeated after modifying the SubtractNumbers service so that no exceptions are thrown, the application deploys without any errors.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>To see this, simply comment out anything related to the fault/exception in the SubtractNumbers.wsdl file and modify SubtractNumbersImpl.java so that the exception is no longer thrown.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>After doing an "ant clean" and repeating the steps above, you should observe that the exception is no longer thrown.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>My questions:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Has anyone else observed this behaviour?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Am I doing something wrong in regards to the configuration of the application?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Is it possible to deploy JAX-WS with different endpoints using different programming models?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>If anyone has any hints, ideas, or anything at all that may help it would be greatly appreciated.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Thank you,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>John Fitzpatrick</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/647709#647709">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss Web Services at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2044">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>