portInfo.initialize(module.getModuleFile());
LOG.debug("Publishing JAX-RPC '" + portInfo.getPortComponentName()
+ "' service at " + portInfo.getContextURI());
ServiceInfo serviceInfo = AxisServiceBuilder.createServiceInfo(portInfo, cl);
JavaServiceDesc serviceDesc = serviceInfo.getServiceDesc();
targetGBean.setAttribute("pojoClassName", servletClassName);
RPCProvider provider = new POJOProvider();
SOAPService service = new SOAPService(null, provider, null);
service.setServiceDescription(serviceDesc);
service.setOption("className", servletClassName);
HandlerInfoChainFactory handlerInfoChainFactory = new HandlerInfoChainFactory(serviceInfo.getHandlerInfos());
service.setOption(org.apache.axis.Constants.ATTR_HANDLERINFOCHAIN, handlerInfoChainFactory);
URI location;
try {
location = new URI(serviceDesc.getEndpointURL());
} catch (URISyntaxException e) {
throw new DeploymentException("Invalid webservice endpoint URI", e);
}
URI wsdlURI;
try {
wsdlURI = new URI(serviceDesc.getWSDLFile());
} catch (URISyntaxException e) {
throw new DeploymentException("Invalid wsdl URI", e);
}
AxisWebServiceContainer axisWebServiceContainer = new AxisWebServiceContainer(location, wsdlURI, service, serviceInfo.getWsdlMap(), cl);
AbstractName webServiceContainerFactoryName = context.getNaming().createChildName(targetGBean.getAbstractName(), "webServiceContainer", NameFactory.GERONIMO_SERVICE);
GBeanData webServiceContainerFactoryGBean = new GBeanData(webServiceContainerFactoryName, SerializableWebServiceContainerFactoryGBean.GBEAN_INFO);
webServiceContainerFactoryGBean.setAttribute("webServiceContainer", axisWebServiceContainer);
try {
context.addGBean(webServiceContainerFactoryGBean);