Question

I have been trying to find out the exact reason for the error and this looks like a common error to many of them using Axis but i could not able to fix them with any thing which i was able to find on net.

I am able to see my service at

http://localhost:8080/axis2/services/listServices. when i hit the service epr on browser 

http://localhost:8080/axis2/services/AuthService, it is working fine also.

I tested the service using SoapUI and its working. But i am wondering why can't i see the wsdl when i click on the following link from the listServices page:

http://localhost:8080/axis2/services/AuthService?wsdl>. I get this error 

org.apache.axis2.AxisFault: Server does not have an epr for the wsdl ==>

https://localhost:8080/services/TestService?wsdl>
at org.apache.axis2.description.AxisService.getLocationURI(AxisService.java:1615)
at org.apache.axis2.description.AxisService.setPortAddress(AxisService.java:1498)
at org.apache.axis2.description.AxisService.printDefinitionObject(AxisService.java:1078)
at org.apache.axis2.description.AxisService.printUserWSDL(AxisService.java:1112)
at org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1386)
at org.apache.axis2.transport.http.ListingAgent.handleWSDLRequest(ListingAgent.java:327)
at org.apache.axis2.transport.http.ListingAgent.processListService(ListingAgent.java:183)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.highradius.payrad.HeaderFilter.doFilter(HeaderFilter.java:182)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

I tried protocal defined for EPR in original wsdl to match with the one defined in httpFrontendHostUrl parameter in axis2.xml which was not useful.

Thanks in Advance. Harika.

Was it helpful?

Solution

After going through many articles i was able to fix the issue. There are very few sources available on net with relevant information and this is a very common issue.

I was able to fix this by setting the below attributes in services.xml file

"useOriginalwsdl" - false

"modifyUserWSDLPortAddress" - false

OTHER TIPS

I just had the same problem and resolved the issue. The problem was that the service did compare the hardcoded URL in the WSDL and the real URL under which the service was reachable. my WSDL definded the following:

<service name="MyService">
    <port name="MyServicePort" binding="so:MaServiceBinding">
        <soap:address location="http://my-service.de/webservice"/>
    </port>
</service>

but this URL did not match the actual URL that the service was using under localhost. Since in services.xml the option "useOriginalWsdl" was true the service did use this WSDL and was just telling me that I entered a wrong service endpoint. Changing the endpoint was resolving this issue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top