Hi I'm still trying to add aliases for a web service at runtime. I have managed to persuade JBossWS to deploy my service endpoint but my service doesn't get registered with tomcat and requests to the context root return a 404 error. I guess I have missed a step in the deployment; can anyone tell me what I am missing? Here is the code I have so far:
| String targetNS = "http://services/jaws"; | String serviceName = "aService"; | String portName = "aServicePort"; | String operationName = "anOperation"; | | String javaClassName = this.getClass().getName(); | String javaMethodName = "method"; | String contextRoot = "contextRoot"; | String endpoint = "http://localhost:8080/"+contextRoot+"/"+serviceName; | | UnifiedDeploymentInfo udi = new JSR181Deployment(UnifiedDeploymentInfo.Type.JSR181_JSE); | URLClassLoader ctxLoader = (URLClassLoader)Thread.currentThread().getContextClassLoader(); | udi.localCl = ctxLoader; | udi.ucl = ctxLoader.getParent(); | udi.annotationsCl = ctxLoader.getParent(); | | UnifiedMetaData wsMetaData = new UnifiedMetaData(); | wsMetaData.setClassLoader(udi.ucl); | ServiceMetaData serviceMetaData = new ServiceMetaData(wsMetaData, new QName(targetNS, serviceName)); | wsMetaData.addService(serviceMetaData); | | ServerEndpointMetaData sepMetaData = new ServerEndpointMetaData(serviceMetaData, new QName(targetNS, portName)); | sepMetaData.setServiceEndpointImplName(javaClassName); | sepMetaData.setStyle(Style.RPC); | sepMetaData.setEncodingStyle(Use.LITERAL); | sepMetaData.setParameterStyle(ParameterStyle.BARE); | sepMetaData.setServiceEndpointID(ObjectNameFactory.create("jboss.ws:context="+contextRoot+",endpoint="+serviceName)); | sepMetaData.setEndpointAddress(endpoint); | sepMetaData.setContextRoot(contextRoot); | serviceMetaData.addEndpoint(sepMetaData); | | OperationMetaData opMetaData = new OperationMetaData(sepMetaData, new QName(targetNS, operationName), javaMethodName); | opMetaData.setOneWayOperation(false); | sepMetaData.addOperation(opMetaData); | | ServiceEndpointInfo seInfo = new ServiceEndpointInfo(udi, sepMetaData); | ServiceEndpointManagerFactory semFactory = ServiceEndpointManagerFactory.getInstance(); | ServiceEndpointManager epManager = semFactory.getServiceEndpointManager(); | epManager.createServiceEndpoint(seInfo); | | ObjectName sepID = sepMetaData.getServiceEndpointID(); | epManager.startServiceEndpoint(sepID); | Thanks in advance Doug View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3965728#3965728 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3965728 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
