tomcat下的webapp迁移到weblogic 10.3.5.0 requested URL string is null

时间:2022-04-02 16:54:19
在tomcat6.0上,运行正常无误,但是部署到weblogic10.3.5.0上就。。。。

Error 500--Internal Server Errorjavax.servlet.ServletException: requested URL string is null
at jsp_servlet.__result._jspService(__result.java:126)
小弟不知道为什么会报 请求url空的错误。。。。

 
 Error 500--Internal Server Errorjavax.servlet.ServletException: requested URL string is null
        at weblogic.servlet.jsp.PageContextImpl.getRD(PageContextImpl.java:115)
        at weblogic.servlet.jsp.PageContextImpl.forward(PageContextImpl.java:159)
        at weblogic.servlet.jsp.PageContextImpl.handlePageException(PageContextImpl.java:403)
        at jsp_servlet.__result._jspService(__result.java:126)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:417)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:326)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)


后台报错信息如下:
<2011-10-20 上午09时28分17秒 CST> <Error> <HTTP> <BEA-101017> <[ServletContext@36670697[app:ctel_errchk module:ctel_errchk.war path:/ctel_errchk spec-version:2.5], request: weblogic.servlet.internal.ServletRequestImpl@571a01a[
GET /ctel_errchk/result.jsp HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://192.168.56.1:7001/ctel_errchk/
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=45h0Tf1V3gQQxDm18LMZY2twshK6Ynv7gjBmPbj56XZVYHr3vTTV!-71575423; ADMINCONSOLESESSION=DTXPTf2J1dKqyMSqpdrvr4dJmL49bwRTQTCQgfD8Vznclmmn2ByT!-71575423

]] Root cause of ServletException.
javax.servlet.ServletException: requested URL string is null
        at weblogic.servlet.jsp.PageContextImpl.getRD(PageContextImpl.java:115)
        at weblogic.servlet.jsp.PageContextImpl.forward(PageContextImpl.java:159)
        at weblogic.servlet.jsp.PageContextImpl.handlePageException(PageContextImpl.java:403)
        at jsp_servlet.__result._jspService(__result.java:126)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
        Truncated. see log file for complete stacktrace
>




在tomcat上运行一切正常。。。 。。。是weblogic太妖怪么?

附上报错的 result.jsp

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Details Informations:</title>
</head>
<%@ page import="ctel_errchk.ErrChkBean" %>
<%@ page import="java.sql.*" %>
<body bgcolor="#87CEFA">
<jsp:useBean id="code" class="ctel_errchk.ErrChkBean" scope="application"></jsp:useBean>
<center>
<h1>错误代码详细信息</h1>
<table border="0" CELLPADDING=3 STYLE="word-break:break-all; table-layout:fixed">
<%
String errcode = (String)session.getAttribute("errcode");
code.setKeyword(errcode);
ResultSet rs = code.ErrCodeRS();
String thfmt = "<th align='left' bgcolor='#9999ff'>";
String tdfmt = "<td align='left' bgcolor='#ff9999' style='overflow:hidden; width:200px;'>";

while(rs.next()){
        out.print("<tr>" + thfmt + "操作系统:</th>" + tdfmt + rs.getString(1) + "</td>"+thfmt+"用户方式:</th>" + tdfmt + rs.getString(2) + "</td></tr>");
}
rs.close();
%>
<font color="red">您输入的查询代码是:<%out.print(errcode.toUpperCase());%></font>
</table>
<button onClick="history.back(-1)">返回</button></center>
</body>
</html>

    


ctel_errchk.ErrChkBean:

package ctel_errchk;

import java.sql.*;
import java.io.*;
import java.util.*;

public class ErrChkBean{
    
    public String errcode;
    private static int s_bugCodeLength = 8;                                                                          
    private static Map<String, String> s_netStyleCode = new HashMap<String, String>();        
    private static Map<String, String> s_networkCardStateCode = new HashMap<String, String>();
    private static Map<String, String> s_cpeStateCode = new HashMap<String, String>();        
    private static Map<String, String> s_internetStateCode = new HashMap<String, String>();  

    private static String FILE_PATH_NAME = "../../db.properties";   //JDBC configure file path 

    String sql = null;  Statement stmt = null;  ResultSet rs = null;  Connection con = null;
    
    public ErrChkBean(){
        errcode = "";
        。。。Hashmap的定义。。。
    }
    
    public void setKeyword(String str){
        errcode = str;
        try{
            byte[] bte=errcode.getBytes("iso-8859-1");
            errcode = new String(bte, "utf-8");
        }catch(Exception e){}
    }
    
    public ResultSet ErrCodeRS(){
        Properties dbpt = new Properties();
        try {
                dbpt.load(ErrChkBean.class.getResourceAsStream(FILE_PATH_NAME));  难道是这里有问题???
                } catch (Exception e) {
                        System.out.println(e.getMessage());
                }
   
        String dbType = dbpt.getProperty("dbType").toString();
        String dbDriver = dbpt.getProperty("dbDriver").toString();
                  
        String dbUsr = dbpt.getProperty("dbUsr").toString();
        String dbPasswd = dbpt.getProperty("dbPasswd").toString();
        String dbUrl = dbpt.getProperty("dbUrl").toString();       
        
        try{ 
           Class.forName(dbDriver); 
           if(dbType.equalsIgnoreCase("sqlserver")){
                  con = DriverManager.getConnection(dbUrl, dbUsr, dbPasswd);
           }else if(dbType.equalsIgnoreCase("mysql")){
                  dbUrl = dbUrl + "?user=" + dbUsr + "&password=" + dbPasswd +
                         "&useUnicode=true" + "&characterEncoding=UTF8";
                  con = DriverManager.getConnection(dbUrl);
           }else if(dbType.equalsIgnoreCase("oracle")){
                  con = DriverManager.getConnection(dbUrl, dbUsr, dbPasswd);
           }
           
           stmt = con.createStatement();
           sql = "SELECT * FROM DATADICT";
            rs = stmt.executeQuery(sql);      
        }
        catch (Exception ex){ 
          System.out.println("Connection failure!"); 
          System.out.println(ex.getMessage());
        }
        return rs;
    }
}


请各位达人赐教

4 个解决方案

#1


weblogic跟tomcat本就不一样,weblogic下好像需要一个weblogic.xml的配置文件,具体怎么搞你上网搜一下吧,肯定不能直接去发布的

#2


引用 1 楼 abstruct 的回复:
weblogic跟tomcat本就不一样,weblogic下好像需要一个weblogic.xml的配置文件,具体怎么搞你上网搜一下吧,肯定不能直接去发布的


回大大,已经配置过weblogic.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.oracle.com/technology/weblogic/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
  <context-root>/ctel_errchk</context-root>
</weblogic-web-app>

设置过context-root, 还是不行

#3


引用 1 楼 abstruct 的回复:
weblogic跟tomcat本就不一样,weblogic下好像需要一个weblogic.xml的配置文件,具体怎么搞你上网搜一下吧,肯定不能直接去发布的

已经试过的,还是不行,配置的weblogic.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.oracle.com/technology/weblogic/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
  <context-root>/ctel_errchk</context-root>
</weblogic-web-app>

#4


请各位达人赐教

#1


weblogic跟tomcat本就不一样,weblogic下好像需要一个weblogic.xml的配置文件,具体怎么搞你上网搜一下吧,肯定不能直接去发布的

#2


引用 1 楼 abstruct 的回复:
weblogic跟tomcat本就不一样,weblogic下好像需要一个weblogic.xml的配置文件,具体怎么搞你上网搜一下吧,肯定不能直接去发布的


回大大,已经配置过weblogic.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.oracle.com/technology/weblogic/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
  <context-root>/ctel_errchk</context-root>
</weblogic-web-app>

设置过context-root, 还是不行

#3


引用 1 楼 abstruct 的回复:
weblogic跟tomcat本就不一样,weblogic下好像需要一个weblogic.xml的配置文件,具体怎么搞你上网搜一下吧,肯定不能直接去发布的

已经试过的,还是不行,配置的weblogic.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.oracle.com/technology/weblogic/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
  <context-root>/ctel_errchk</context-root>
</weblogic-web-app>

#4


请各位达人赐教