2013-07-29 2 views
3

웹 서비스 백엔드/클라이언트 스텁에 CXF를 사용하고 있습니다. 49 점 다음 명령을CXF 클라이언트가 NullPointerException을 반환합니다.

java.lang.NullPointerException 
    at org.apache.cxf.jaxb.JAXBDataBinding.createContext(JAXBDataBinding.java:559) 
    at org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContextAndSchemas(JAXBDataBinding.java:497) 
    at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:324) 
    at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86) 
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:442) 
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:680) 
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:505) 
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:242) 
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:202) 
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:101) 
    at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90) 
    at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:144) 
    at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:133) 
    at com.amazonws.AmazonWS.createAmazonWS(AmazonWS.java:49) 

라인 : 클라이언트가 웹 서비스를 호출 할 때 , 나는 다음과 같은 오류가

다음 블록 다음에 오는
AmazonWS client = (AmazonWS) factory.create(); 

:

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
factory.getInInterceptors().add(new LoggingInInterceptor()); 
factory.getOutInterceptors().add(new LoggingOutInterceptor()); 
factory.setServiceClass(AmazonWS.class); 
factory.setAddress("http://localhost:9000/helloAmazon"); 

내가 뭘 잘못하고 있니? 제 의뢰인이 웹 서비스를받을 수없는 것 같습니다. 왜?

+0

http://localhost:9000/helloAmazon?wsdl를 사용하려고, 당신은 어떤을 받았 는가 결과? –

+0

괜찮습니다. 입력 할 때 wsdl을 사용할 수 있습니다. http : // localhost : 9000/helloAmazon? wsdl' – Raphael

+1

CXF의 버전은 무엇입니까? JAXBDataBinding의 559 번째 줄에는 1 년 넘게 NPE를 수행 할 수있는 코드가 있었기 때문에 고대 버전의 CXF처럼 보입니다. 최신 버전의 CXF를 사용해보십시오. –

답변

0

당신이 게시하시기 바랍니다 수는 CXF의 버전이 사용하고 싶은 감사? 또한

당신이 필요한 모든 CXF XML을 가져올 수 있는지 확인하십시오

<import resource="classpath:META-INF/cxf/cxf.xml" /> 
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /> 
<import resource="classpath:META-INF/cxf/osgi/cxf-extension-osgi.xml" /> 

을 당신이 당신의 웹 브라우저에 주소를 입력하면 대신 http://localhost:9000/helloAmazon

관련 문제