Проблемы с развертыванием приложения в Weblogic через консоль администратора

Я использую Weblogic 10.3.5. Когда я развертываю свое приложение Struts2 локально в Eclipse, оно работает нормально. Когда я пытаюсь развернуть свое приложение через консоль администратора, я получаю ошибку Struts 2, имя не найдено для действия.

Когда я смотрю на файл.war, в нем есть все библиотеки и классы. Я следовал этим инструкциям для развертывания через консоль администратора. Я могу успешно развернуть через консоль администратора, но когда я пытаюсь использовать тестовые ссылки для приложения, я получаю ту же ошибку. Если я пытаюсь получить доступ к приложению через URL:

http://localhost:7001/app-name

Я получаю ту же ошибку.

Вот трассировка стека:

[[ACTIVE] ExecuteThread: '8' для очереди: 'weblogic.kernel.Default (автоматическая настройка)'] ПРЕДУПРЕЖДЕНИЕ org.apache.struts2.dispatcher.Dispatcher - Не удалось найти действие или результат: /eServices/login.action Там Действие не сопоставлено для пространства имен [/] и имени действия [логин], связанного с контекстным путем [/eServices]. - [неизвестное местоположение] в com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) в org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) в org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37) в com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) в org.apache.struts2.dispatcher2.java ().struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) в org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) на веб-сайте (FilterChainImpl.java:56) в oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) в java.security.AccessController.doPrivileged(собственный метод) в oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) в oracle.security.jps.ee.util. (JpsAbsFilter.java:161) в oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) в weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) в оракуле.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) на веб-сайте.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) в weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) в weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) по адресу weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) по адресу weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:145.exexteread.:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

Что я делаю неправильно? Почему я могу получить доступ к приложению при его развертывании через Eclipse, но я не могу получить доступ к приложению при его развертывании через консоль администратора.

Спасибо за вашу помощь!

1 ответ

Похоже, что ваш файл struts.xml в WEB-INF/classes является каким-то неправильным при попытке ручного развертывания. Взломайте файл.ear /.war и посмотрите, что находится в вашем struts.xml (если он вообще существует). Eclipse может автоматически поместить его в папку для вас, которая не будет развернута, когда вы делаете это вручную. Ниже приведен рабочий пример для справки:

<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">

    <action name="myAction" 
        class="com.something.myAction" >
        <result name="success">pages/myPage.jsp</result>
    </action>

</package>
</struts>

Если корневым контекстом проекта является "имя приложения", вы можете получить доступ к вышеуказанному действию через URL-адрес, например:http://domain:8080/app-name/myAction.action

Другие вопросы по тегам