기술과 산업/언어 및 프레임워크

Java First using JAX-WS APIs 예제 에러 해결

B컷개발자 2013. 3. 13. 16:50
728x90

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);


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



728x90