chirino 2005/03/18 02:40:21
Modified: modules/openejb-builder/src/java/org/openejb/deployment
AxisWebServiceContainerBuilder.java
Log:
Implemented WSDL port address replacment.
Revision Changes Path
1.2 +17 -13
openejb/modules/openejb-builder/src/java/org/openejb/deployment/AxisWebServiceContainerBuilder.java
Index: AxisWebServiceContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/AxisWebServiceContainerBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AxisWebServiceContainerBuilder.java 15 Mar 2005 02:14:16 -0000
1.1
+++ AxisWebServiceContainerBuilder.java 18 Mar 2005 07:40:21 -0000
1.2
@@ -44,23 +44,22 @@
*/
package org.openejb.deployment;
-import java.util.jar.JarFile;
-import java.net.URL;
import java.net.URI;
-import java.net.MalformedURLException;
import java.net.URISyntaxException;
+import java.util.jar.JarFile;
+
import javax.management.ObjectName;
+import org.apache.axis.description.JavaServiceDesc;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.axis.builder.AxisServiceBuilder;
import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.j2ee.deployment.EARContext;
import org.apache.geronimo.j2ee.deployment.EJBModule;
import org.apache.geronimo.security.deploy.Security;
import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
-import org.apache.geronimo.axis.builder.AxisServiceBuilder;
-import org.apache.axis.description.JavaServiceDesc;
import org.openejb.server.axis.WSContainerGBean;
import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
@@ -91,13 +90,18 @@
}
public GBeanData buildGBeanData(ObjectName sessionObjectName, ObjectName
listener, String ejbName, String serviceEndpointName, JarFile jarFile,
ClassLoader cl) throws DeploymentException {
- JavaServiceDesc ejbServiceDesc =
AxisServiceBuilder.createEJBServiceDesc(jarFile, ejbName, cl);
-
- URL wsdlURL = null;
+ JavaServiceDesc ejbServiceDesc =
AxisServiceBuilder.createEJBServiceDesc(jarFile, ejbName, cl);
+
+ // Strip the jar file path from the WSDL file since jar file
location may change at runtime.
+ String wsdlFile = ejbServiceDesc.getWSDLFile();
+ wsdlFile = wsdlFile.substring(wsdlFile.indexOf("!")+2);
+
+ URI wsdlURI = null;
try {
- wsdlURL = new URL(ejbServiceDesc.getWSDLFile());
- } catch (MalformedURLException e) {
- throw new DeploymentException("Invalid WSDL URL: "+
ejbServiceDesc.getWSDLFile(), e);
+ wsdlURI = new URI(wsdlFile);
+ }
+ catch (URISyntaxException e) {
+ throw new DeploymentException("Invalid WSDL URI: "+ wsdlFile, e);
}
URI location = null;
try {
@@ -106,7 +110,7 @@
throw new DeploymentException("Invalid address location URI:
"+ejbServiceDesc.getEndpointURL(), e);
}
- GBeanData gBean =
WSContainerGBean.createGBean(ejbName,sessionObjectName,listener, location,
wsdlURL, ejbServiceDesc);
+ GBeanData gBean =
WSContainerGBean.createGBean(ejbName,sessionObjectName,listener, location,
wsdlURI, ejbServiceDesc);
return gBean;
}
}