You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Katherine Sanders (JIRA)" <ji...@apache.org> on 2010/01/29 14:46:34 UTC

[jira] Updated: (AXIS2-4247) JAX-WS API fails to build an endpoint reference (IllegalStateException) when service is published with Endpoint.publish()

     [ https://issues.apache.org/jira/browse/AXIS2-4247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Katherine Sanders updated AXIS2-4247:
-------------------------------------

    Attachment: AXIS2-4247.patch

I've attached a patch that fixes this issue as well as adding another unit test to stop it regressing in future.  I'd really appreciate it if someone could take a look at the patch and commit it for me if it looks good.

> JAX-WS API fails to build an endpoint reference (IllegalStateException) when service is published with Endpoint.publish()
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4247
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4247
>             Project: Axis2
>          Issue Type: Bug
>          Components: jaxws
>    Affects Versions: nightly
>         Environment: JDK 1.6.0_06, WinXP
>            Reporter: Franck Michel
>         Attachments: AXIS2-4247.patch, Axis2Test.java, LaunchAxis2Test.java
>
>
> Hi, I'm facing a trouble using the Enpoint.publish() JAXWS API. I've checked several issues that may be related, with no success until now :
> https://issues.apache.org/jira/browse/AXIS2-3116?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel
> https://wso2.org/jira/browse/CARBON-738
> I'm using the last nightly build as some issues were fixed on this kind of thing recently.
> I publish a very basic WS Endpoint.publish(String url) API: the service seems to be published (isPublished() returns true), but it fails to return an endpoint reference. My code does this (the code of the web service is at the end of this post):
>             Endpoint endPoint = Endpoint.create(new Axis2Test());
>             endPoint.publish("http://localhost:8081/services/Test");
>             logger.debug("isPublished: " + endPoint.isPublished());
>             logger.debug("getProperties: " + endPoint.getProperties());
>             logger.debug("getMetadata: " + endPoint.getMetadata());
>             logger.debug("getEndpointReference: " + endPoint.getEndpointReference());
> This fails on endPoint.getEndpointReference(), an returns:
> 2009-02-23 11:28:37,242 [main] DEBUG fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:18 - isPublished: true
> 2009-02-23 11:28:37,242 [main] DEBUG fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:19 - getProperties: null
> 2009-02-23 11:28:37,242 [main] DEBUG fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:20 - getMetadata: null
> 2009-02-23 11:28:37,492 [main] FATAL fr.anr.techlog.neurolog.server.LaunchStandaloneWebServices:24 - Unable to create server
> java.lang.IllegalStateException: Unable to locate a deployed service that maps to the requested endpoint, Service: {http://mypackage/}Axis2TestService, Port: {http://mypackage/}Axis2TestPort
>         at org.apache.axis2.jaxws.addressing.factory.impl.Axis2EndpointReferenceFactoryImpl.createEndpointReference(Axis2EndpointReferenceFactoryImpl.java:66)
>         at org.apache.axis2.jaxws.addressing.factory.impl.Axis2EndpointReferenceFactoryImpl.createEndpointReference(Axis2EndpointReferenceFactoryImpl.java:97)
>         at org.apache.axis2.jaxws.addressing.util.EndpointReferenceUtils.createAxis2EndpointReference(EndpointReferenceUtils.java:133)
>         at org.apache.axis2.jaxws.server.endpoint.EndpointImpl.getEndpointReference(EndpointImpl.java:244)
>         at org.apache.axis2.jaxws.server.endpoint.EndpointImpl.getEndpointReference(EndpointImpl.java:261)
>         at mypackage.LaunchA2xis2Test.main(LaunchA2xis2Test.java:21)
> Also, accessing the service using Firefox returns this :
> 2009-02-23 11:52:46,184 [HttpConnection-8081-2] ERROR org.apache.axis2.engine.AxisEngine:212 - The service cannot be found for the endpoint reference (EPR) /services/Test?wsdl
> org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) /services/Test?wsdl
>         at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:65)
>         at org.apache.axis2.engine.Phase.invoke(Phase.java:333)
>         at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
>         at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:136)
>         at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:130)
>         at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:257)
>         at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:281)
>         at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:187)
>         at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:82)
>         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
>         at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
>         at java.lang.Thread.run(Thread.java:619)
> In addition, a quite curious behaviour is this: when I get this URL, http://localhost:8081/services/Axis2TestService.Axis2TestPort, I get a proper service page with a correct list of available operations. However the link to the wsdl (http://localhost:8081/services/Axis2TestService.Axis2TestPort?wsdl) returns another error : 
> 2009-02-23 11:55:31,728 [HttpConnection-8081-4] WARN  org.apache.axis2.description.AxisService:1003 - Unable to generate EPR for the transport : http
> My web service code is the most simple that could be:
> import javax.jws.WebService;
> @WebService
> public class Axis2Test
> {
>     public Axis2Test() {}
>     public int getNumber() {
>         return 0;
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.