[
https://issues.jboss.org/browse/JBWS-3568?page=com.atlassian.jira.plugin....
]
Richard Opalka commented on JBWS-3568:
--------------------------------------
The following code shows how it should be right - note it requires JBossWS release in AS7
trunk.
{code}
public void init() throws ServletException {
try {
Map<String,String> urlPatternToClassNameMap = new HashMap<String,
String>();
WebservicesMetaData metadata = new WebservicesMetaData();
WebserviceDescriptionMetaData webserviceDescription = new
WebserviceDescriptionMetaData(metadata);
metadata.addWebserviceDescription(webserviceDescription);
PortComponentMetaData portComponent = new
PortComponentMetaData(webserviceDescription);
portComponent.setPortComponentName("HelloWebService"); //unique ID
portComponent.setServiceEndpointInterface(BaseWebService.class.getName());
portComponent.setWsdlPort(new QName("http://test",
"HelloWebServicePort"));
portComponent.setWsdlService(new QName("http://test",
"HelloWebService"));
portComponent.setServletLink("HelloWebService"); // automagically
generated from URL pattern
webserviceDescription.addPortComponent(portComponent);
urlPatternToClassNameMap.put("/HelloWebService",
BaseWebService.class.getName());
portComponent = new PortComponentMetaData(webserviceDescription);
portComponent.setPortComponentName("HeyWebService"); //unique ID
portComponent.setServiceEndpointInterface(BaseWebService.class.getName());
portComponent.setWsdlPort(new QName("http://test",
"HeyWebServicePort"));
portComponent.setWsdlService(new QName("http://test",
"HeyWebService"));
portComponent.setServletLink("HeyWebService"); // automagically
generated from URL pattern
webserviceDescription.addPortComponent(portComponent);
urlPatternToClassNameMap.put("/HeyWebService",
BaseWebService.class.getName());
context = PUBLISHER.publish("ws",
Thread.currentThread().getContextClassLoader(), urlPatternToClassNameMap, metadata);
} catch (Exception e) {
throw new ServletException(e);
}
}
{code}
Registering endpoints with EndpointPublisher using same context
results in DuplicateServiceException
----------------------------------------------------------------------------------------------------
Key: JBWS-3568
URL:
https://issues.jboss.org/browse/JBWS-3568
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: jbossws-integration
Environment: JBoss AS 7.2.0.Alpha1-SNAPSHOT "Steropes"
Reporter: Magesh Bojan
Assignee: Richard Opalka
Fix For: jbossws-cxf-4.1.1
Attachments: hello.zip, HelloWorldServlet.java, HelloWorldServlet.java-fix
Deploying attached sample creates the following error:
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/sample]]
(ServerService Thread Pool -- 55) JBWEB000289: Servlet Hello threw load() exception:
org.jboss.msc.service.DuplicateServiceException: Service
jboss.ws.endpoint."ws.deployment"."org.jboss.servlet.hello.BaseWebService"
is already registered
at
org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:154)
at
org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:227)
at
org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:560)
at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:307)
at
org.jboss.as.webservices.service.EndpointService.install(EndpointService.java:193)
at
org.jboss.as.webservices.deployers.EndpointServiceDeploymentAspect.start(EndpointServiceDeploymentAspect.java:50)
at
org.jboss.ws.common.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:131)
at
org.jboss.as.webservices.publish.EndpointPublisherImpl.publish(EndpointPublisherImpl.java:123)
at
org.jboss.as.webservices.publish.EndpointPublisherImpl.publish(EndpointPublisherImpl.java:102)
at
org.jboss.as.webservices.publish.EndpointPublisherImpl.publish(EndpointPublisherImpl.java:95)
at org.jboss.servlet.hello.HelloWorldServlet.init(HelloWorldServlet.java:78)
[classes:]
at javax.servlet.GenericServlet.init(GenericServlet.java:242)
[jboss-servlet-api_3.0_spec-1.0.2.Final.jar:1.0.2.Final]
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194)
[jbossweb-7.2.0.Alpha5.jar:7.2.0.Alpha5]
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1100)
[jbossweb-7.2.0.Alpha5.jar:7.2.0.Alpha5]
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3591)
[jbossweb-7.2.0.Alpha5.jar:7.2.0.Alpha5]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3798)
[jbossweb-7.2.0.Alpha5.jar:7.2.0.Alpha5]
at
org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156)
[jboss-as-web-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
at
org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60)
[jboss-as-web-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
at
org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93)
[jboss-as-web-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
[rt.jar:1.6.0_30]
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
[rt.jar:1.6.0_30]
at java.util.concurrent.FutureTask.run(Unknown Source) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
[rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[rt.jar:1.6.0_30]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.6.0_30]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira