1

如果我在本地 weblogic 8.1 服务器上部署一个 ear 文件,它工作得非常好。但是当我在 Weblogic 11g 上部署它时,它给出了一个错误。

这是场景 -

应用程序的第一页要求您选择用户。在用户选择时,它将执行 RolesAction 并将您带到角色页面,其中与用户关联的角色将作为下拉列表出现。

一旦我部署 Argus 应用程序并在测试登录页面上选择用户,整个 RolesAction 类将被执行,但不是在下拉列表中获取与该用户关联的角色的页面,而是在日志文件中得到“错误 404 - 未找到”错误页面得到下面提到的错误。

<Mar 20, 2011 8:20:42 PM GMT> <Error> <HTTP> <BEA-101017> <[ServletContext@406125315[app:ArgusDEV module:ArgusWeb path:/ArgusWeb spec-version:null]] Root cause of ServletException.

java.lang.NoSuchMethodError: org/apache/struts/config/ForwardConfig.getContextRelative()Z

            at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:298)

            at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)

            at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

            at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

            at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

有输入吗??

我的 Roles.jsp 的 tld 声明如下:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

您在 tld 声明中看到任何问题吗?

想法?

谢谢!

编辑:

在您选择用户的应用程序中出现的第一个页面是 Login.jsp。在这个 jsp 中,tld 声明如下: 该页面被显示。但是,roles.jsp 页面是给出错误的页面。

Login.jsp 顶级域名声明:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

两个 jsp 都具有相同的 tld 声明,并且显示 1 而另一个则给出错误。

想法?

编辑:

角色.jsp

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="css/arg.css" />


</head>
<form name="rolesForm" method="post">

<logic:present name="VIEW_BEAN" scope="request">
<logic:notEmpty name="VIEW_BEAN" property="userId" scope="request">
    <input type="hidden" name="Id" value="<bean:write name="VIEW_BEAN"     property="userId"/>">
</logic:notEmpty>
</logic:present>
<table border="0" cellpadding="1" cellspacing="0" width="95%" bgcolor="#FFFFFF">
 <tr>
<td height="19">&nbsp;</td>
 </tr>
<tr>
<td width="100%" align="center" class="epi-dataTableLiteNew">
 <font size="2"><b>Select a Role:</b>&nbsp;</font>
 <select size="1" name="roleType" class="textbox" ">
            <option value="">Select ---</option>
            <logic:notEmpty name="VIEW_BEAN" property="roleList" scope="request">
                <logic:iterate id="record" name="VIEW_BEAN"     property="roleList" scope="request">
                <option value="<bean:write name="record"     property="roleID"/>"><bean:write name="record" property="roleName"/></b></option>
                </logic:iterate>                
            </logic:notEmpty>
        </select>
<input type="submit" value="Submit" onClick="return selectRole()" style="border:1px     ridge #000000; height:22px; font-weight:bold cellpadding="0" cellspacing="0" 100%>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</td>

</tr>
</table>
</form>     
</body>
</html>

登录.jsp

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
</head>
<%@ page 
language="java"
%>
<meta http-equiv="Content-Type" content="text/html" />
<link rel="stylesheet" type="text/css" href="css/arg.css" />

<title>Home</title>


 <%
  String userid=request.getHeader("user");
  String isLoginPage=request.getParameter("isUser");

%>
<!-- Please select the user from the list and press continue: &nbsp; -->
 <form name="homePageForm" action="RolesAction.do" method="post">

 </form>
</body>
</html>

编辑:

struts-config.xml

<action
  path="/roles"
  name="HomePageForm"
  type="org.springframework.web.struts.DelegatingActionProxy"
  scope="request">
  <forward name="success" path=".rolespage"/>
</action>

要为 url 模式调用的操作位于 spring.xml 文件中。

4

2 回答 2

2

检查应用程序 lib 文件夹以找到 struts-core-1.3.8.jar 以及 struts.jar。正是因为如此,才引发了异常。

struts.jar 具有 forwardConfig 类和 getContextRelative() 方法。

struts-core-1.3.8.jar 有 forwardConfig 类,但没有 getContextRelative() 方法。

这导致了这个问题。

因此删除 struts.jar 以便使用 1.3.8 版本。

-- 另外将 struts-extras-1.3.8.jar 添加到应用程序库中

-- 在 jsp 中,将标签 lib uri 更正为:

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 

<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %> 

这解决了问题

于 2011-03-30T08:32:56.703 回答
1

Struts 1.1 <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>

Struts 1.2.x <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

请使用上面的标签 lib uri 。希望能解决你的问题。

于 2011-03-24T05:48:07.770 回答