AxisFault exception(Server does not have an epr for the wsdl epr) is thrown 
when the protocal defined for EPR in original wsdl differs from the protocol 
defined in httpFrontendHostUrl parameter in axis2.xml
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: AXIS2-5056
                 URL: https://issues.apache.org/jira/browse/AXIS2-5056
             Project: Axis2
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.5.4
         Environment: Tomcat 6.0 and Weblogic 10.3
            Reporter: Rakesh


AxisFault exception(Server does not have an epr for the wsdl epr) is thrown 
when the protocal defined for EPR in original wsdl differs from the protocol 
defined in httpFrontendHostUrl parameter in axis2.xml

It seems like Axis has a bug in relation to parameter named httpFrontendHostUrl 
where if you set it to https URL.
It fails because axis tries to compare the new EPR protocol i.e. HTTPS with the 
original EPR protocol provided in original wsdl ( i.e. http). 
Thus, No match is found and it results in Internal Server error stating
Server does not have an epr for the wsdl 
epr==>http://<hostname>:portNo/context/services/ABCService

If the EPR in the original wsdl is changed to 
https://<hostname>:portNo/context/services/ABCService, then Axis works fine 
provided httpFrontendHostUrl also has "https" string.

The error is thrown in the following method of AxisService.java class in the 
axis2- 1.5.4 version.

private String getLocationURI(String[] eprs, String epr) throws AxisFault {
            String returnIP = null;
            if (epr != null) {
                  if (epr.indexOf(":") > -1) {
                        String existingProtocol = epr.substring(0, 
epr.indexOf(":"))
                                    .trim();
                        String eprProtocol;
                        for (int i = 0; i < eprs.length; i++) {
                              eprProtocol = eprs[i].substring(0, 
eprs[i].indexOf(":"))
                                          .trim();
                              if (eprProtocol.equals(existingProtocol)) {
                                    returnIP = eprs[i];
                                    break;
                              }
                        }
                        if (returnIP != null) {
                              return returnIP;
                        } else {
                              throw new AxisFault(
                                          "Server does not have an epr for the 
wsdl epr==>"
                                                      + epr);
                        }
                  } else {
                        throw new AxisFault("invalid epr is given epr ==> " + 
epr);
                  }
            } else {
                  throw new AxisFault("No epr is given in the wsdl port");
            }
      }


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to