I've encountered the same problem Jared Blitzstein has today, and I think I
know why it is happening.

It seems that the org.apache.axis2.transport.http.AxisServlet and other
classes implementation of the interface method
org.apache.axis2.transport.TransportListener.getEPRsForService() is
hardcoded to use http

The only one that will return https is a private class in ListingAgent

I think if the AxisServlet is accessible to both http and https it should
return more than 1 ERP, i.e. 1 for http 1 for https. Here is the current
implementation in AxisServlet as of 1.2

   public EndpointReference[] getEPRsForService(String serviceName, String
ip) throws AxisFault {
       //RUNNING_PORT
       String port = (String) configContext.getProperty(
ListingAgent.RUNNING_PORT);
       if (port == null) {
           port = "8080";
       }
       if (ip == null) {
           try {
               ip = HttpUtils.getIpAddress();
               if (ip == null) {
                   ip = "localhost";
               }
           } catch (SocketException e) {
               throw new AxisFault(e);
           }
       }


       EndpointReference endpoint = new EndpointReference("http://"; + ip +
":" + port + '/' +
               configContext
                       .getServiceContextPath() +
               "/" +
               serviceName);

       return new EndpointReference[]{endpoint};
   }

Reply via email to