2016-08-28 10 views
1

Я хочу создать uber JAR для сервера приложений на основе CXF. Я хочу сервер с командной строки с java -jar. В IDE я могу запустить основной класс com.connexta.desertcodecamp.Server, но я неправильно создаю uber jar.Не найдено DestinationFactory для пространства имен - создайте uber JAR из CXF с Jetty

Когда я запускаю команду java -jar server-1.0-SNAPSHOT.jar, я получаю

org.apache.cxf.service.factory.ServiceConstructionException 
     at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:215) 
     at com.connexta.desertcodecamp.Server.<init>(Server.java:19) 
     at com.connexta.desertcodecamp.Server.main(Server.java:33) 
Caused by: org.apache.cxf.BusException: No DestinationFactory was found for the namespace http://cxf.apache.org/transports/http. 
     at org.apache.cxf.bus.managers.DestinationFactoryManagerImpl.getDestinationFactory(DestinationFactoryManagerImpl.java:122) 
     at org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:79) 
     at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:63) 
     at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:170) 

Вот ссылка на файл POM (и GitHub репо): https://github.com/ahoffer/desert-code-camp/blob/master/server/pom.xml

Других сообщений ссылаться на отсутствующую зависимость, cxf-rt-transports-http, но У меня это как зависимость в POM.xml.

+0

вы уверены, что у вас есть это в объединенной банке? _How_ вы объединили банки? – bmargulies

+0

@bmargulies Я не знаю достаточно, чтобы ответить на вопрос. Я не знаю, какие сочетания в этом случае. Я включил cxf-rt-transports-http в качестве зависимости от maven. Я предположил, что все зависимости пробиваются в затененный JAR. – ahoffer

ответ

2

Решение было здесь: apache camel - packaging an executable jar и здесь: Missing cxf.xml? Fails in maven, works in Eclipse.

Добавление этого трансформатора и магический ресурс в разделе конфигурации плагин Maven тени фиксирует это:

<transformer org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
    <resource>META-INF/cxf/bus-extensions.txt</resource> 
</transformer> 

Ресурс генерируется плагин; его не нужно создавать

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

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