2011-05-10 5 views
0

Apache CXF D-OSgi 및 Eclipse Equinox를 개발 환경으로 사용하고 있습니다. 서비스를 등록하지만 IE에서 wsdl 페이지를 열 수 없습니다. 서비스 등록 코드는 다음과 같습니다 :ApacheCXF dosgi를 사용하여 wsdl에 액세스 할 수 없습니다.

Caused by: java.net.SocketException: SocketException invoking http://localhost:9000/1: Network is unreachable: connect 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:2058) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2043) 
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) 
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639) 
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 
... 43 more 

Caused by: java.net.SocketException: Network is unreachable: connect 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(Unknown Source) 
at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.PlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at sun.net.NetworkClient.doConnect(Unknown Source) 
at sun.net.www.http.HttpClient.openServer(Unknown Source) 
at sun.net.www.http.HttpClient.openServer(Unknown Source) 
at sun.net.www.http.HttpClient.<init>(Unknown Source) 
at sun.net.www.http.HttpClient.New(Unknown Source) 
at sun.net.www.http.HttpClient.New(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) 
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1955) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1907) 
at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) 
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1974) 
... 46 more 

2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 

信息 : 처리되지 않은 이벤트 유형을받은 : 1 2011년 5월 10일

`  Dictionary<String, String> props = new Hashtable<String, String>(); 
    props.put("osgi.remote.interfaces", "*");  
    props.put("osgi.remote.configuration.type","pojo"); 
    props.put("osgi.remote.configuration.pojo.address", "http://localhost:9000/1"); 

     sr = bundleContext.registerService 
    (service1.class.getName(), new impl1(), props);` 

나는 클라이언트 프로그램을 실행하려고, 그 아래의 오류를 보여줍니다 23:22:04 org.apache.cxf.dosgi.topologymanager.TopologyManager $ 1 modifiedService 내용 : TopologyManager : EndpointListener가 변경됨 ... 2011-5-10 23:22:04 org.apache.cxf.dosgi.dsw.service .RemoteServiceAdminCore importService 정보 : importService() 끝점 : {endpoint.id = http : // localhost : 9000/1, objectClass = [Ljava.lang.String; @ 988707, osgi.remote.configuration.pojo.address = http : // localhost : 9000/1, osgi.remote .configuration.type = pojo, osgi.remote.interfaces = , service.imported = true, service.imported.configs = org.apache.cxf.ws} 2011-5-10 23:22:04 org.apache. cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 알림 : 처리되지 않은 이벤트 유형 수신 : 1 2011-5-10 23:22:04 org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore importService 정보 : importService() 끝점 : {endpoint.id = http : // localhost : 9000/1, objectClass = [Ljava.lang.String; @ 988707, osgi.remote.configuration.pojo.address = http : // localhost : 9000/1, osgi.remote .configuration.type = pojo, osgi.remote.interfaces =, service.imported = true, service.imported.configs = org.apache.cxf.ws} 2011년 5월 10일 23시 22분 4초 org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 은 信息 : 처리되지 않은 이벤트 유형을받은 :

답변

1

1 내가 그이 원격에 대한 서비스를 등록하는 부정확 한 속성 생각합니다.

나는 (브라우저에서 액세스 할 때 OSGi 콘솔 내 서비스가 성공적으로 등록라고하지만 WSDL은 찾았받지의) 같은 문제에 직면하지만, CXF OSGi에 원격 서비스를 다음과 같은 속성을 사용하여이 작업을 얻을 수

props.put("service.exported.interfaces", "*"); 
    props.put("service.exported.configs", "org.apache.cxf.ws"); 
    props.put("org.apache.cxf.ws.address", "http://localhost:8080/TDMSAPIService"); 

희망이 있습니다.

관련 문제