Ошибка при развертывании Jersey REST на weblogic (<BEA-101216> <Сервлет: «RestServlet» не удалось предварительно загрузить при запуске в веб-приложении: «шлюз».) - PullRequest
0 голосов
/ 26 апреля 2018

Не удается развернуть REST-джерси на сервере weblogic. Существует ли какая-либо конфигурация службы REST, специфичная для weblogic?

Полная трассировка стека -

25 апреля,2018 19:01:53 com.sun.jersey.server.impl.application.WebApplicationImpl инициировать INFO: Инициирование приложения на Джерси, версия 'Джерси: 1.2 05.07.2010 14:11' 25 апреля, 2018 19:01:53 PM com.sun.jersey.server.impl.application.WebApplicationImpl processRootResources SEVERE: Экземпляр ResourceConfig не содержит никаких корневых классов ресурсов.<25 апреля, 2018 19:01:53 IST> (StubLifecycleHelper.java:48) по адресу weblogic.servlet.internal.ServletStubImpl.prepareServlet (ServletStubImpl.java:539) по адресу weblogic.servlet.internal.WebAppServletServTerletJava: 1981) по адресу.java: 3155) на weblogic.servlet.internal.WebAppModule.startContexts (WebAppModule.java:1518) на weblogic.servlet.internal.WebAppModule.start (WebAppModule.java:484) на weblogic.application.internal.flowDModule $.next (ModuleStateDriver.java:427) на weblogic.application.utils.StateMachineDriver.nextState (StateMachineDriver.java:54) на weblogic.application.internal.flow.ModuleStateDriver.start (ModuleStateDriver.java:119) на веб-сайте.internal.flow.ScopedModuleDriver.start (ScopedModuleDriver.java:201) в weblogic.application.internal.flow.ModuleListenerInvoker.start (ModuleListenerInvoker.java:249) в weblogic.application.internal.flow.ModuleStateDriver $ 3.следующий (ModuleSavaD27)weblogic.application.utils.StateMachineDriver.nextState (StateMachineDriver.java:54) по адресу weblogic.application.internal.flow.ModuleStateDriver.start (ModuleStateDriver.java:119) по адресу weblogic.application.internal.flow.StartModulesFlow.ModuleFlowJava: 28) в weblogic.application.internal.BaseDeployment $ 2.next (BaseDeployment.java:672) в weblogic.application.utils.StateMachineDriver.nextState (StateMachineDriver.java:54) в weblogic.application.internal.BaseDeployment.activate (BaseDeployment.java:212) в weblogic.application.internal.EarDeployment.activate (EarDeployment.java:59) в weblogic.application.internal.DeploymentStateChecker.activate (DeploymentStateChecker.java:161) в weblogic.deploy.internal.targeterserver.activate (приложениеContainerInvoker.java:79) по адресу weblogic.deploy.internal.targetserver.BasicDeployment.activate (BasicDeployment.java:184) по адресу weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle (BasicDeployment.javapgic)..internal.DeploymentAdapter $ 1.doActivate (DeploymentAdapter.java:52) на weblogic.management.deploy.internal.DeploymentAdapter.activate (DeploymentAdapter.java:200) на weblogic.management.deploy.internal.AppTransition $ 2.transitionApp (AppTransition.ppava).: 31) в weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps (ConfiguredDeployments.java:240) в weblogic.management.deploy.internal.ConfiguredDeployments.activate (ConfiguredDeployments.java:170) в weblogic.man.ConfiguredDeployments.deploy (ConfiguredDeployments.java:124) по адресу weblogic.management.deploy.internal.DeploymentServerService.resume (DeploymentServerService.java:181) по адресу weblogic.management.deploy.internal.DeploymentServerService.start (ymentServerService.java:97) в weblogic.t3.srvr.SubsystemRequest.run (SubsystemRequest.java:64) в weblogic.work.ExecuteThread.execute (ExecuteThread.java:256) вweblogic.work.ExecuteThread.run (ExecuteThread.java:221)

web.xml -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
                         "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <servlet>
  <servlet-name>FrontController</servlet-name>
  <display-name>FrontController</display-name>
  <description>Front Controller for handling requests</description>
  <servlet-class>com.obopay.icici.FrontController</servlet-class>
 </servlet>
 <servlet>
  <servlet-name>RestServlet</servlet-name>
  <display-name>RestServlet</display-name>
  <description>Rest Controller for handling http rest requests</description>
  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  <init-param>
   <param-name>com.sun.jersey.config.property.packages</param-name>
   <param-value>com.obopay.ebp.auth.resources</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>FrontController</servlet-name>
  <url-pattern>/siAuth</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>FrontController</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>FrontController</servlet-name>
  <url-pattern>/failureResponse</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>FrontController</servlet-name>
  <url-pattern>/successResponse</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
  <servlet-name>RestServlet</servlet-name>
  <url-pattern>/*</url-pattern>
 </servlet-mapping>
 <session-config>
  <session-timeout>5</session-timeout>
 </session-config>
 <!-- Define an error handler for 404 pages -->
 <error-page>
  <error-code>404</error-code>
  <location>/jsp/error.jsp</location>
 </error-page>
 <!-- Define an error handler for java.lang.Throwable -->
 <error-page>
  <exception-type>java.lang.Throwable</exception-type>
  <location>/jsp/error.jsp</location>
 </error-page>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>

Я использую ниже баночки -

jersey-bundle-1.2.jar
jsr311-api-1.1.1.jar
asm-3.1.jar
wlthint3client.jar
log4j-1.2.15.jar

1 Ответ

0 голосов
/ 26 апреля 2018

Решено!

Проблема была не с сервером weblogic, проблема была в том, что мой исходный код был в отдельной папке вместо src, поэтому weblogic не смог найти пакет для сканирования в папке src, поэтому последобавив плагин ниже в pom.xml, развертывание прошло успешно -

<plugin>
   <artifactId>maven-resources-plugin</artifactId>
   <version>3.0.2</version>
   <executions>
      <execution>
         <id>copy-source</id>
         <phase>generate-sources</phase>
         <goals>
            <goal>copy-resources</goal>
         </goals>
         <configuration>
            <outputDirectory>co/src</outputDirectory>
            <overwrite>true</overwrite>
            <resources>
               <resource>
                  <directory>${basedir}/co/EBP</directory>
               </resource>
            </resources>
         </configuration>
      </execution>
   </executions>
</plugin>

Используя этот плагин, я скопировал исходный код моей папки saperate в папку src с перезаписью как true.Следовательно, исходный код стал доступен в папке src.

Эту проблему также можно решить, упомянув исходную папку в файле .classpath.

...