return WSDescriptorParser.parseWebServiceDescriptor(wsDDUrl, moduleFile, isEJB, servletLocations);
}
public void configurePOJO(GBeanData targetGBean, JarFile moduleFile, Object portInfoObject, String seiClassName, ClassLoader classLoader) throws DeploymentException {
PortInfo portInfo = (PortInfo) portInfoObject;
ServiceInfo serviceInfo = AxisServiceBuilder.createServiceInfo(portInfo, classLoader);
JavaServiceDesc serviceDesc = serviceInfo.getServiceDesc();
try {
classLoader.loadClass(seiClassName);
} catch (ClassNotFoundException e) {
throw new DeploymentException("Unable to load servlet class for pojo webservice: " + seiClassName, e);
}
targetGBean.setAttribute("pojoClassName", seiClassName);
RPCProvider provider = new POJOProvider();
SOAPService service = new SOAPService(null, provider, null);
service.setServiceDescription(serviceDesc);
service.setOption("className", seiClassName);
HandlerInfoChainFactory handlerInfoChainFactory = new HandlerInfoChainFactory(serviceInfo.getHandlerInfos());
service.setOption(org.apache.axis.Constants.ATTR_HANDLERINFOCHAIN, handlerInfoChainFactory);
URI location = null;
try {
location = new URI(serviceDesc.getEndpointURL());
} catch (URISyntaxException e) {
throw new DeploymentException("Invalid webservice endpoint URI", e);
}
URI wsdlURI = null;
try {
wsdlURI = new URI(serviceDesc.getWSDLFile());
} catch (URISyntaxException e) {
throw new DeploymentException("Invalid wsdl URI", e);
}
classLoader = new ClassLoaderReference(classLoader);
AxisWebServiceContainer axisWebServiceContainer = new AxisWebServiceContainer(location, wsdlURI, service, serviceInfo.getWsdlMap(), classLoader);
//targetGBean.setAttribute("webServiceContainer", axisWebServiceContainer);
try {
targetGBean.setAttribute("webServiceContainer", new StoredObject(axisWebServiceContainer)); // Hack!
} catch (IOException e) {
throw new DeploymentException("Unable to serialize the AxisWebServiceContainer", e);