问题通过管理控制台将应用程序部署到Weblogic

时间:2014-06-02 13:56:48

标签: eclipse deployment struts2 weblogic-10.x action-mapping

我正在使用Weblogic 10.3.5。当我在eclipse中本地部署我的Struts2应用程序时,它运行正常。当我尝试通过管理控制台部署我的应用程序时,出现Struts 2错误,找不到行动名称。

当我查看.war文件时,它包含所有库和类。我按照这些directions进行了管理控制台的部署。我可以通过管理控制台成功部署,但是当我尝试使用应用程序的测试链接时,我得到了同样的错误。如果我尝试通过网址访问该应用程序:

http://localhost:7001/app-name

我得到了同样的错误。

这是堆栈跟踪:

  

[[ACTIVE] ExecuteThread:'8'代表队列:'weblogic.kernel.Default   (自我调整)'] WARN org.apache.struts2.dispatcher.Dispatcher - 可以   找不到动作或结果:/eServices/login.action没有动作   映射为名称空间[/]和与之关联的动作名称[login]   上下文路径[/ eServices]。 - [未知位置] at   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.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552)     在   org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)     在   org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)     在   weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)     在   oracle.security.jps.ee.http.JpsAbsFilter $ 1.run(JpsAbsFilter.java:111)     在java.security.AccessController.doPrivileged(Native Method)at   oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)     在   oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)     在   oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)     在   oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)     at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)     在   weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)     在   oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)     在   weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)     在   weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)     在   weblogic.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)     在   weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)     在   weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)     在   weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)     在weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)at   weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

我做错了什么?为什么我在通过eclipse部署应用程序时可以访问该应用程序,但是当我通过管理控制台部署应用程序时,我无法访问该应用程序。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

当您尝试手动部署时,听起来像WEB-INF / classes中的struts.xml文件有些错误。破解你的.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>

如果项目根上下文是“app-name”,您可以通过以下URL访问上述操作: http://domain:8080/app-name/myAction.action