chirino 2005/03/18 02:42:17
Modified: modules/core/src/java/org/openejb/server/axis
WSContainer.java WSContainerGBean.java
Log:
Implemented WSDL port address replacment.
Revision Changes Path
1.4 +9 -3
openejb/modules/core/src/java/org/openejb/server/axis/WSContainer.java
Index: WSContainer.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/server/axis/WSContainer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- WSContainer.java 16 Mar 2005 02:24:14 -0000 1.3
+++ WSContainer.java 18 Mar 2005 07:42:17 -0000 1.4
@@ -59,7 +59,7 @@
protected WSContainer() {
}
- public WSContainer(EJBContainer ejbContainer, URI location, URL wsdlURL,
SoapHandler soapHandler, JavaServiceDesc serviceDesc) throws Exception {
+ public WSContainer(EJBContainer ejbContainer, URI location, URI wsdlURI,
SoapHandler soapHandler, JavaServiceDesc serviceDesc) throws Exception {
try {
RPCProvider provider = new EJBContainerProvider(ejbContainer);
@@ -70,7 +70,13 @@
service.setOption("className",
serviceEndpointInterface.getName());
serviceDesc.setImplClass(serviceEndpointInterface);
- AxisWebServiceContainer axisContainer = new
AxisWebServiceContainer(location, wsdlURL, service,
ejbContainer.getClassLoader());
+ ClassLoader classLoader = ejbContainer.getClassLoader();
+ String wsdlResource = wsdlURI.toString();
+ URL wsdlURL = classLoader.getResource(wsdlResource);
+ if( wsdlURL==null )
+ throw new RuntimeException("Could not locate wsdl:
"+wsdlURI);
+
+ AxisWebServiceContainer axisContainer = new
AxisWebServiceContainer(location, wsdlURL, service, classLoader);
if (soapHandler != null) {
soapHandler.addWebService(location.getPath(), axisContainer);
}
1.2 +7 -7
openejb/modules/core/src/java/org/openejb/server/axis/WSContainerGBean.java
Index: WSContainerGBean.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/server/axis/WSContainerGBean.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WSContainerGBean.java 9 Mar 2005 06:17:16 -0000 1.1
+++ WSContainerGBean.java 18 Mar 2005 07:42:17 -0000 1.2
@@ -72,14 +72,14 @@
infoFactory.addReference("EJBContainer", EJBContainer.class);
infoFactory.addAttribute("location", URI.class, true);
- infoFactory.addAttribute("wsdlURL", URL.class, true);
+ infoFactory.addAttribute("wsdlURI", URI.class, true);
infoFactory.addReference("WebServiceContainer", SoapHandler.class);
infoFactory.addAttribute("serviceDesc", JavaServiceDesc.class, true);
infoFactory.setConstructor(new String[]{
"EJBContainer",
"location",
- "wsdlURL",
+ "wsdlURI",
"WebServiceContainer",
"serviceDesc"
});
@@ -91,14 +91,14 @@
return GBEAN_INFO;
}
- public static ObjectName addGBean(Kernel kernel, String name, ObjectName
ejbContainer, ObjectName listener, URI location, URL wsdlURL, JavaServiceDesc
serviceDesc) throws GBeanAlreadyExistsException, GBeanNotFoundException {
- GBeanData gbean = createGBean(name, ejbContainer, listener,
location, wsdlURL, serviceDesc);
+ public static ObjectName addGBean(Kernel kernel, String name, ObjectName
ejbContainer, ObjectName listener, URI location, URI wsdlURI, JavaServiceDesc
serviceDesc) throws GBeanAlreadyExistsException, GBeanNotFoundException {
+ GBeanData gbean = createGBean(name, ejbContainer, listener,
location, wsdlURI, serviceDesc);
kernel.loadGBean(gbean, WSContainer.class.getClassLoader());
kernel.startGBean(gbean.getName());
return gbean.getName();
}
- public static GBeanData createGBean(String name, ObjectName
ejbContainer, ObjectName listener, URI location, URL wsdlURL, JavaServiceDesc
serviceDesc) {
+ public static GBeanData createGBean(String name, ObjectName
ejbContainer, ObjectName listener, URI location, URI wsdlURI, JavaServiceDesc
serviceDesc) {
assert ejbContainer != null : "EJBContainer objectname is null";
ObjectName gbeanName =
JMXUtil.getObjectName("openejb:type=WSContainer,name=" + name);
@@ -106,7 +106,7 @@
GBeanData gbean = new GBeanData(gbeanName,
WSContainerGBean.GBEAN_INFO);
gbean.setReferencePattern("EJBContainer", ejbContainer);
gbean.setAttribute("location", location);
- gbean.setAttribute("wsdlURL", wsdlURL);
+ gbean.setAttribute("wsdlURI", wsdlURI);
gbean.setAttribute("serviceDesc", serviceDesc);
gbean.setReferencePattern("WebServiceContainer", listener);