2012-11-13 2 views
0

cxf를 사용하여 wsdl에서 생성 된 webservice를 실행하려고합니다.wsdl2java에서 생성 된 webservice 실행 cxf

  1. GET 샘플 WSDL (hello_world.wsdl)
  2. 는 WSDL에서 자바 코드를 생성
  3. 서비스도 구현 이후
  4. 가 생성 된 코드에없는, 나는
  5. 'ant compile'이 성공했습니다.
  6. 'ant GreeterServer'가 성공적이지 않습니다.

내가 무엇이 누락 되었습니까?


compile: 

GreeterServer: 
    [java] Starting Server 
    [java] After implementor 
    [java] Before publish 
    [java] Exception in thread "main" java.lang.ExceptionInInitializerError 
    [java]  at org.eclipse.jetty.util.component.AbstractLifeCycle.<clinit>(AbstractLifeCycle.java:33) 
    [java]  at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:178) 
    [java]  at org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:48) 
    [java]  at org.apache.cxf.binding.AbstractBaseBindingFactory.addListener(AbstractBaseBindingFactory.java:97) 
    [java]  at org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:901) 
    [java]  at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:131) 
    [java]  at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:349) 
    [java]  at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:247) 
    [java]  at org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:151) 
    [java]  at javax.xml.ws.Endpoint.publish(Endpoint.java:57) 
    [java]  at org.apache.hello_world_soap_http.Greeter_SoapPort_Server.<init>(Greeter_SoapPort_Server.java:21) 
    [java]  at org.apache.hello_world_soap_http.Greeter_SoapPort_Server.main(Greeter_SoapPort_Server.java:26) 
    [java] Caused by: java.lang.IllegalArgumentException: key can't be empty 
    [java]  at java.lang.System.checkKey(System.java:774) 
    [java]  at java.lang.System.getProperty(System.java:647) 
    [java]  at org.eclipse.jetty.util.log.Log$1.run(Log.java:122) 
    [java]  at java.security.AccessController.doPrivileged(Native Method) 
    [java]  at org.eclipse.jetty.util.log.Log.<clinit>(Log.java:85) 
    [java]  ... 12 more 
    [java] Java Result: 1 

BUILD SUCCESSFUL 
Total time: 1 second 

답변

1

이 원인이 무엇인지 확실하지. 어떻게 든, 귀하의 JVM이 System.getProperties(). propertyNames()에서 null 속성 이름을 반환하고있는 것 같습니다. cxf 코드를 호출하기 전에 다음을 시도해보십시오.

@SuppressWarnings("unchecked") 
Enumeration<String> systemKeyEnum = (Enumeration<String>)System.getProperties().propertyNames(); 
while (systemKeyEnum.hasMoreElements()) { 
    String key = systemKeyEnum.nextElement(); 
    String val = System.getProperty(key); 
    System.out.println(key + ": " + val); 
} 

실제로 작동하는지 확인 하시겠습니까?

+0

예, 잘 인쇄됩니다. 나는 무엇이 문제를 일으키는 지 전혀 모른다. 이것은 실제 프로젝트 파일입니다. [출처] (https://www.dropbox.com/s/nym2ojb8brpz5pc/cxf_test.zip) 감사합니다. – Sean