ABOUT ME

B급 개발자 이야기, 인생은 B 컷이 전부다.

Today
Yesterday
Total
  • Java First using JAX-WS APIs 예제 에러 해결
    개발 2013. 3. 13. 16:50

    CXF프로젝트를 처음 접하고 사용해보기 위해서 아파치 사이트의 유저가이드를 보게되는데

    http://cxf.apache.org/docs/sample-projects.html 여기있는 Java First using JAX-WS APIs 예제 샘플을 돌려보면 아래와 같은 에러가 나온다.



     org.apache.cxf.interceptor.Fault: Could not send Message.

    at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:48)

    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)

    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319)

    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)

    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)

    at $Proxy39.sayHi(Unknown Source)

    at com.tistory.codesnippet.cxf.client.Client.main(Client.java:53)

    Caused by: java.net.MalformedURLException: Invalid address. Endpoint address cannot be null.

    at org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:757)

    at org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)

    at org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)

    at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:475)

    at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)

    ... 9 more

    Exception in thread "main" javax.xml.ws.WebServiceException: Could not send Message.

    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)

    at $Proxy39.sayHi(Unknown Source)

    at com.tistory.codesnippet.cxf.client.Client.main(Client.java:53)

    Caused by: java.net.MalformedURLException: Invalid address. Endpoint address cannot be null.

    at org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:757)

    at org.apache.cxf.transport.http.HTTPConduit.getURL(HTTPConduit.java:741)

    at org.apache.cxf.transport.http.HTTPConduit.setupURL(HTTPConduit.java:685)

    at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:475)

    at org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46)

    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)

    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:463)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:366)

    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:319)

    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)

    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)

    ... 2 more



    http://cxf.apache.org/docs/a-simple-jax-ws-service.html#AsimpleJAX-WSservice-WritingyourService


    위의 링크를 보면 클라이언트와 서버 구현이 있다.


    내용에 보면 alternative approach 부분으로 원래의 구현을 변경하거나


    Client 구현의 HelloWorld hw = service.getPort(HelloWorld.class); 이부분에 아래와 같이 파라미터를 추가한다.


    HelloWorld hw = service.getPort(PORT_NAME, HelloWorld.class);


    왜 에러가 안나는지는 좀더 확인해야겠다.



Designed by Tistory.