JSP deploy problem in jboss
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 no开发者_如何学Ct 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>
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!
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 the web.xml
of the servlet container. In case of JBoss AS, that's Tomcat and its web.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 the org.apache.jasper.servlet.JspServlet
and a <servlet-mapping>
on the same servlet-name
along with an url-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 another Filter
or Servlet
on exactly the same url-pattern
as the JspServlet
(and is thus overriding it), but that's not the case after judging the web.xml
you posted.
精彩评论