2015-07-09 6 views
0

Доброе утро,CXF DOSGI ZOOKEEPER

Я ищу помощь, пожалуйста. Я - только новичок.

Я использую CxF-dosgi из (распределения по функциям DOSGi Apache Karaf)

Я хочу сделать прозрачное использование услуг между двумя удаленными компьютерами. Таким образом, у меня есть контейнер karaf на каждой из этих двух машин.


Я испытал это example: начать с двумя контейнерами karaf размещенных на ту же машину, затем я изменил конфигурацию, чтобы проверить с двумя контейнерами, размещенных на два разных удаленных машинах. И он отлично работает!

Так что я хочу сделать то же самое для экспорта, чтобы экспортировать мои веб-сервисы. Я использую Spring DM. Так что я делаю это на стороне сервера:

<osgi:service id="osgi-service" ref="myservice" interface="org.apache.camel.Endpoint"> <osgi:service-properties> <entry key="name" value="service"/> <entry key="service.exported.interfaces" value="*"/> </osgi:service-properties> </osgi:service> 

Я сделал установки, как в учебнике с CxF dosgi версии 1.6, но я получаю эту ошибку:

16:25:53,256 | ERROR | pool-21-thread-3 | w.service.RemoteServiceAdminCore 193 | 184 - cxf-dosgi-ri-dsw-cxf - 1.6.0 | failed to create server for interface org.apache.camel.Endpoint 
java.lang.NullPointerException 
    at java.lang.reflect.Array.newArray(Native Method)[:1.7.0_79] 
    at java.lang.reflect.Array.newInstance(Array.java:70)[:1.7.0_79] 
    at org.apache.cxf.aegis.type.TypeUtil.getTypeRelatedClass(TypeUtil.java:259) 
    at org.apache.cxf.aegis.type.AbstractTypeCreator.createTypeForClass(AbstractTypeCreator.java:108) 
    at org.apache.cxf.aegis.type.AbstractTypeCreator.createType(AbstractTypeCreator.java:402) 
    at org.apache.cxf.aegis.type.basic.BeanTypeInfo.getType(BeanTypeInfo.java:192) 
    at org.apache.cxf.aegis.type.basic.BeanType.getDependencies(BeanType.java:547) 
    at org.apache.cxf.aegis.databinding.AegisDatabinding.addDependencies(AegisDatabinding.java:394) 
    at org.apache.cxf.aegis.databinding.AegisDatabinding.addDependencies(AegisDatabinding.java:399) 
    at org.apache.cxf.aegis.databinding.AegisDatabinding.addDependencies(AegisDatabinding.java:399) 
    at org.apache.cxf.aegis.databinding.AegisDatabinding.initializeMessage(AegisDatabinding.java:371) 
    at org.apache.cxf.aegis.databinding.AegisDatabinding.initializeOperation(AegisDatabinding.java:283) 
    at org.apache.cxf.aegis.databinding.AegisDatabinding.initialize(AegisDatabinding.java:242) 
    at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86) 
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:490) 
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:550) 
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265) 
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102) 
    at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159) 
    at org.apache.cxf.dosgi.dsw.handlers.AbstractPojoConfigurationTypeHandler.createServerFromFactory(AbstractPojoConfigurationTypeHandler.java:191) 
    at org.apache.cxf.dosgi.dsw.handlers.PojoConfigurationTypeHandler.createServer(PojoConfigurationTypeHandler.java:119) 
    at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportInterfaces(RemoteServiceAdminCore.java:184) 
    at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:140) 
    at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:59) 
    at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:57) 
    at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_79] 
    at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:57)[184:cxf-dosgi-ri-dsw-cxf:1.6.0] 
    at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:41)[184:cxf-dosgi-ri-dsw-cxf:1.6.0] 
    at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport.exportServiceUsingRemoteServiceAdmin(TopologyManagerExport.java:185)[183:cxf-dosgi-ri-topology-manager:1.6.0] 
    at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport.doExportService(TopologyManagerExport.java:168)[183:cxf-dosgi-ri-topology-manager:1.6.0] 
    at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport$3.run(TopologyManagerExport.java:143)[183:cxf-dosgi-ri-topology-manager:1.6.0] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_79] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_79] 
    at java.lang.Thread.run(Thread.java:745)[:1.7.0_79] 

У вас представление о том, что случилось ?

ответ

0

Ouch .. что вы делаете с 1.4-SNAPSHOT. Сначала это не релиз, а второй довольно старый.

Другая вещь, которая выглядит подозрительной, - service.exported.interfaces = myInterface. Это должно быть полное имя интерфейса Java. Для начала попробуйте service.exported.interfaces = * для этого.

Вы должны начать с моего CXF DOSGi tutorial. Код там должен работать из коробки. Затем вы можете добавить свои изменения в конфиг. Так что это легче, чем начать совершенно новое.

+0

Спасибо за ваш отзыв Кристиан, я попробую учебник cxf dosgi. Этот пример работает между двумя удаленными машинами? Об этом свойстве: service.exported.interfaces = MyInterface. Это просто пример. На самом деле, я использую интерфейс org.apache.camel.Endpoint. – thiboli

+0

Я протестировал пример: для начала с двумя контейнерами karaf, размещенными на одном компьютере, я изменил конфигурацию для тестирования с двумя контейнерами, размещенными на двух разных удаленных компьютерах. И он отлично работает! – thiboli

+0

Я хочу просто сделать то же самое, чтобы экспортировать мои веб-сервисы. Я использую Spring DM. Так я делаю это на стороне сервера: – thiboli

 Смежные вопросы

  • Нет связанных вопросов^_^