jboss中JSP部署问题
我在 Linux 中安装了 Jboss 4.0.4GA。当我毫无问题地启动jboss后,我尝试在浏览器中访问JSP页面,出现错误:
XML页面无法显示 无法使用 XSL 样式表查看 XML 输入。请更正错误
然后单击“刷新”按钮,或者 稍后再试。
<小时>名称以无效字符开头。处理资源时出错 'https://uappdev.marvell.com/login/index.jsp'。林...
<%@ page import="com.marvell.macroip.util.Constants" %> -^
并且我发现转换后的 servlet 类文件不在 [jboss home]/work/jboss.web/localhost/_/org... 目录中。 Jboss 日志文件中没有错误。
有人能帮我解决这个问题吗?我已经花了很多时间解决这个问题,但没有运气。
这是我的 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>
<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>com.marvell.macroip.web.util.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/extract/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.marvell.macroip.web.util.PublicSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>com.marvell.macroip.web.ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>400</error-code>
<location>/error/index.jsp?code=400</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/error/index.jsp?code=401</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error/index.jsp?code=403</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/index.jsp?code=404</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/error/index.jsp?code=405</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/error/index.jsp?code=408</location>
</error-page>
<error-page>
<error-code>410</error-code>
<location>/error/index.jsp?code=410</location>
</error-page>
<error-page>
<error-code>411</error-code>
<location>/error/index.jsp?code=411</location>
</error-page>
<error-page>
<error-code>412</error-code>
<location>/error/index.jsp?code=412</location>
</error-page>
<error-page>
<error-code>413</error-code>
<location>/error/index.jsp?code=413</location>
</error-page>
<error-page>
<error-code>414</error-code>
<location>/error/index.jsp?code=414</location>
</error-page>
<error-page>
<error-code>415</error-code>
<location>/error/index.jsp?code=415</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/index.jsp?code=500</location>
</error-page>
<error-page>
<error-code>501</error-code>
<location>/error/index.jsp?code=501</location>
</error-page>
<error-page>
<error-code>502</error-code>
<location>/error/index.jsp?code=502</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/error/index.jsp?code=503</location>
</error-page>
<error-page>
<error-code>506</error-code>
<location>/error/index.jsp?code=506</location>
</error-page>
<taglib>
<taglib-uri>/WEB-INF/for-loop.tld</taglib-uri>
<taglib-location>/WEB-INF/for-loop.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/root.tld</taglib-uri>
<taglib-location>/WEB-INF/root.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<security-constraint>
<display-name>MacroIP Login</display-name>
<web-resource-collection>
<web-resource-name>MacroIP Login</web-resource-name>
<url-pattern>/login/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<display-name>Extract</display-name>
<web-resource-collection>
<web-resource-name>Extract</web-resource-name>
<url-pattern>/extract/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<display-name>Admin</display-name>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
jsp 页面:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="com.marvell.macroip.util.Constants" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/logic-ext.tld" prefix="logic-ext" %>
<bean:parameter id="logout" name="logout" value="false"/>
<html>
<head>
<title>Tracking System</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" type="text/JavaScript" src="/includes/imgChange.js"></script>
<script language="JavaScript" type="text/JavaScript" src="/includes/css_bCheck.js"></script>
<script language="javascript" type="text/javascript" src="/includes/sifr.js">// flash insert code</script>
</head>
<body bgcolor="#eeeeee" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="470" border="0" cellspacing="0" cellpadding="0">
<tr valign="middle">
<td align="right" bgcolor="#ebebeb" class="smallgrey"><span class="red">*</span>User Name </td>
<td>
<html:text property="userName" styleClass="formElement" size="29" disabled="false" style="width:290px"/>
</td>
</tr>
<tr valign="middle">
<td align="right" bgcolor="#ebebeb" class="smallgrey"><span class="red">*</span>Password </td>
<td>
<html:password property="password" maxlength="35" redisplay="false" styleClass="formElement" size="29" disabled="false" style="width:290px"/>
</td>
</tr>
</table>
<table width="440" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right">
<input type="image" alt="Submit" border="0" />
</td>
</tr>
</table>
如果我尝试这个jsp页面,它将是空白页面或在浏览器中显示原始jsp代码。
<html><head><title>JSP Test</title>
<%!
String message = "Hello, World.";
%>
</head>
<body>
<h2><%= message%></h2>
<%= new java.util.Date() %>
</body></html>
I have Jboss 4.0.4GA setup in Linux. after I start my jboss without problem, I tried to access JSP page in browser, got error:
The XML page cannot be displayed Cannot view XML input using XSL style sheet. Please correct the error
and then click the Refresh button, or
try again later.A name was started with an invalid character. Error processing resource 'https://uappdev.marvell.com/login/index.jsp'. Lin...
<%@ page import="com.marvell.macroip.util.Constants" %>
-^
and I find out the converted servlets class files is not in [jboss home]/work/jboss.web/localhost/_/org... directory. No errors in Jboss log file.
Can anybody help me to resolve this problem? I already spend a lot time one this problem, but no luck.
here is my 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>
<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>com.marvell.macroip.web.util.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/extract/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.marvell.macroip.web.util.PublicSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>com.marvell.macroip.web.ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>400</error-code>
<location>/error/index.jsp?code=400</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/error/index.jsp?code=401</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/error/index.jsp?code=403</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/index.jsp?code=404</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/error/index.jsp?code=405</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/error/index.jsp?code=408</location>
</error-page>
<error-page>
<error-code>410</error-code>
<location>/error/index.jsp?code=410</location>
</error-page>
<error-page>
<error-code>411</error-code>
<location>/error/index.jsp?code=411</location>
</error-page>
<error-page>
<error-code>412</error-code>
<location>/error/index.jsp?code=412</location>
</error-page>
<error-page>
<error-code>413</error-code>
<location>/error/index.jsp?code=413</location>
</error-page>
<error-page>
<error-code>414</error-code>
<location>/error/index.jsp?code=414</location>
</error-page>
<error-page>
<error-code>415</error-code>
<location>/error/index.jsp?code=415</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/index.jsp?code=500</location>
</error-page>
<error-page>
<error-code>501</error-code>
<location>/error/index.jsp?code=501</location>
</error-page>
<error-page>
<error-code>502</error-code>
<location>/error/index.jsp?code=502</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/error/index.jsp?code=503</location>
</error-page>
<error-page>
<error-code>506</error-code>
<location>/error/index.jsp?code=506</location>
</error-page>
<taglib>
<taglib-uri>/WEB-INF/for-loop.tld</taglib-uri>
<taglib-location>/WEB-INF/for-loop.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/root.tld</taglib-uri>
<taglib-location>/WEB-INF/root.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<security-constraint>
<display-name>MacroIP Login</display-name>
<web-resource-collection>
<web-resource-name>MacroIP Login</web-resource-name>
<url-pattern>/login/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<display-name>Extract</display-name>
<web-resource-collection>
<web-resource-name>Extract</web-resource-name>
<url-pattern>/extract/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<display-name>Admin</display-name>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
jsp page:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="com.marvell.macroip.util.Constants" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/logic-ext.tld" prefix="logic-ext" %>
<bean:parameter id="logout" name="logout" value="false"/>
<html>
<head>
<title>Tracking System</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" type="text/JavaScript" src="/includes/imgChange.js"></script>
<script language="JavaScript" type="text/JavaScript" src="/includes/css_bCheck.js"></script>
<script language="javascript" type="text/javascript" src="/includes/sifr.js">// flash insert code</script>
</head>
<body bgcolor="#eeeeee" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="470" border="0" cellspacing="0" cellpadding="0">
<tr valign="middle">
<td align="right" bgcolor="#ebebeb" class="smallgrey"><span class="red">*</span>User Name </td>
<td>
<html:text property="userName" styleClass="formElement" size="29" disabled="false" style="width:290px"/>
</td>
</tr>
<tr valign="middle">
<td align="right" bgcolor="#ebebeb" class="smallgrey"><span class="red">*</span>Password </td>
<td>
<html:password property="password" maxlength="35" redisplay="false" styleClass="formElement" size="29" disabled="false" style="width:290px"/>
</td>
</tr>
</table>
<table width="440" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right">
<input type="image" alt="Submit" border="0" />
</td>
</tr>
</table>
if i try this jsp page, it will be blank page or display the original jsp code in browser.
<html><head><title>JSP Test</title>
<%!
String message = "Hello, World.";
%>
</head>
<body>
<h2><%= message%></h2>
<%= new java.util.Date() %>
</body></html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我确实找到了解决方案。 jsight 所说的“是的,我认为这是内部的......我只是想知道 apache->jboss 进程(或其他进程)是否实际上并没有到达您认为的页面。例如,您”如果 apache 正在为页面本身提供服务(错误配置的 apache)而不是重定向到 jboss,或者如果您访问的是 .jsp 以外的内容(url 的其他排列),我会看到这样的问题”
我发现。应该是apache+ssl尝试自己解析jsp而不是将jsp请求传递给jboss。然后我和我的同事发现 mod_jk 没有在 apache 中正确加载。因此,在 httpd.conf 文件中加载的 mod-jk.conf 之后添加“JkMountCopy ALL”。并重新启动 Apache,瞧...它成功了!
I did find out the solution. from what jsight said "Yeah, I figured it was internal... I was just wondering if perhaps the apache->jboss process (or something else) isn't actually hitting the page that you think it is. Eg, you'd see a problem like this if apache were serving the page itself (misconfigured apache) instead of redirecting to jboss. Or possibly if you were hitting something other than a .jsp (some other permutation of the url). – jsight"
I found out it should be apache+ssl trying to resolve jsp by itself instead passing jsp request to jboss. and then my coworker and I find out the mod_jk is not loaded properly in apache. therefore, add "JkMountCopy ALL" right after the mod-jk.conf loaded in httpd.conf file. and restart Apache, voila.... it worked!
问题在于 JSP 未按预期编译或执行。
负责此操作的是位于同一个
JspServlet
,它是在 servlet 容器的web.xml
中配置的。对于 JBoss AS,即 Tomcat,其web.xml
默认位于 Tomcat 安装的/conf
文件夹中。它必须包含org.apache.jasper.servlet.JspServlet
的活动(即未注释掉)
定义和< code>servlet-name
上,并带有*.jsp
的url-pattern
。验证是否有任何事情是正确的。另一个原因可能是 Web 应用程序本身的
web.xml
(/WEB-INF
文件夹中的那个)有另一个Filter
或Servlet
与JspServlet
完全相同的url-pattern
(因此覆盖它),但在判断后情况并非如此>web.xml
您发布的。The problem is here that JSP's are not compiled nor executed as expected.
The one who's responsible for that is the
JspServlet
which is configured in theweb.xml
of the servlet container. In case of JBoss AS, that's Tomcat and itsweb.xml
is by default located in the/conf
folder of the Tomcat installation. It must contain an active (i.e. not outcommented)<servlet>
definition of theorg.apache.jasper.servlet.JspServlet
and a<servlet-mapping>
on the sameservlet-name
along with anurl-pattern
of*.jsp
. Verify if anything is right.Another cause might have been that the
web.xml
of the webapplication itself (the one in the/WEB-INF
folder) has anotherFilter
orServlet
on exactly the sameurl-pattern
as theJspServlet
(and is thus overriding it), but that's not the case after judging theweb.xml
you posted.