2013-12-17 3 views
0

У меня есть веб-приложение с остальными API веб-сервисов. Приложение теперь разработано и отлично работает на Glassfish Server (3.1.x).Рестайлинг (или не Джерси - реализация JAXRS) на WebLogic12c, возможно?

Как реализация jax-rs, использование webapp Rest-easy, потому что нынешние функции, которые не присутствуют на Джерси.

Теперь необходимо развернуть веб-приложение в WebLogic 12c, особенно в weblogic 12.1.2. Но это казалось невозможным. Weblogic использует Джерси для обслуживания отдыха и дает конфликт, если он использует другую реализацию jax-rs. Тогда вопрос ... можно ли использовать реализацию JAX-RS Jersey. (в моем случае RestEasy).

Несмотря на то, что архив web.xml настроен для использования сервлета RestEasy, по-прежнему отображаются ошибки, например, если используется Джерси (<BEA-101216> <Servlet: "Jersey" failed to preload on startup in Web application: "pruebaRestWL-1.0-SNAPSHOT") and (<Error> com.sun.jersey.spi.inject.Errors>).

Ошибка:

<17/12/2013 10:52:07 AM CST> <Warning> <weblogic.jaxrs.server.portable.servlet.ServletContainer> <BEA-000000> <Failed to create monitoring factory: oracle.j2ee.ws.server.jaxrs.dms.JaxRsDMSMonitoringEventReceiverFactory: 
    oracle.j2ee.ws.server.jaxrs.dms.JaxRsDMSMonitoringEventReceiverFactory> 
<17/12/2013 10:52:08 AM CST> <Error> <com.sun.jersey.spi.inject.Errors> <BEA-000000> 
<The following errors and warnings have been detected with resource and/or provider classes: SEVERE: 
    Missing dependency for constructor public org.jboss.resteasy.plugins.providers.DocumentProvider(org.jboss.resteasy.spi.ResteasyConfiguration) at parameter index 0 
    SEVERE: Missing dependency for constructor public org.jboss.resteasy.core.AsynchronousDispatcher(org.jboss.resteasy.spi.ResteasyProviderFactory) at parameter index 0> 
    <17/12/2013 10:52:08 AM CST> <Error> <HTTP> <BEA-101216> <Servlet: "Jersey" failed to preload on startup in Web application: "pruebaRestWL-1.0-SNAPSHOT". 
    com.sun.jersey.spi.inject.Errors$ErrorMessagesException at 
    com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170) at 
    com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136) at 
    com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199) at 
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:770) at 
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:765) Truncated. see log file for complete stacktrace 

web.xml (Эта конфигурация необходима для Resteasy и работать в GF)

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     version="3.0"> 
    <!-- :::::::::::::::::::::::::::::::::::::: --> 
    <!-- Configuración para implementación rest --> 
    <!-- :::::::::::::::::::::::::::::::::::::: --> 
    <context-param> 
     <param-name>resteasy.scan</param-name> 
     <param-value>true</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>Resteasy</servlet-name> <!-- Servlet for use RestEasy --> 
     <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Resteasy</servlet-name> 
     <url-pattern>/services/*</url-pattern> 
    </servlet-mapping> 
    <context-param> 
     <param-name>resteasy.servlet.mapping.prefix</param-name> 
     <param-value>/services</param-value> 
    </context-param> 
</web-app> 

Одним из подхода, который я стараюсь был отключен Джерси на WebLogic. Я пытаюсь удалить библиотеки джерси, используемые для weblogic в ORACLE_HOME/oracle_common/modules.

  • Джерси-клиент-1.17.1
  • Джерси-ядро-1.17.1
  • Джерси-1.17.1 JSON-
  • Джерси-многочастному-1.17.1
  • Джерси-server- 1.17.1
  • Джерси-сервлет-1.17.1

Но у меня есть эта ошибка: weblogic.application.ModuleException: java.lang.ArrayStoreException: s un.reflect.annotation.TypeNotPresentExceptionProxy

<17/12/2013 10:07:15 AM CST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "1387296431330" for task "0". Error is: "weblogic.application.ModuleException: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy" 
weblogic.application.ModuleException: java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy 
    at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:213) 
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:208) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
    Truncated. see log file for complete stacktrace 

Отредактировано: Доля немного Maven проект только один успокоительной службы и настроен для использования Resteasy. Этот проект работает в GF.

Link for download a Maven Project for test de behavior

Можно проверить с де следовать URI. ПОЛУЧИТЬ.

http://domain:8080/pruebaRestWL/services/test 

(in glassfish) 
+0

Не могли бы вы рассказать, можно ли найти решение, потому что ответа по-прежнему нет. У меня точно такая же проблема. – Maozturk

+0

Нет, я не нашел решение для использования Resteasy в Weblogic 12c. Я должен был изменить свой webapp, чтобы использовать Джерси, как воплощение Джерси. –

ответ

0

Возможно использовать RESTeasy и использовать его. Обязательно настройте weblogic.xml correctly so to isolate the classpath. Нет необходимости, и на самом деле вы не должны отключать модуль Джерси.

+5

Я буду более ценен, если вы расскажете больше о том, как это сделать. – Maozturk

+0

@ bruno-borges Я поставил загрузчик классов фильтрации, но resteasy не загружен, не могли бы вы привести пример, который работает? –

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