Java First using JAX-WS APIs 예제 에러 해결
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);
왜 에러가 안나는지는 좀더 확인해야겠다.