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);
  
  
  

Reply via email to