[jboss-user] [JBossWS] - Programmatic service deployment, again!

Doug.Palmer do-not-reply at jboss.com
Thu Aug 17 09:02:58 EDT 2006


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



More information about the jboss-user mailing list