Java项目在Tomcat下能运行,到WAS上不能运行原因查找

0、分析原因:一般都是jar包冲突

1、定位错误:发布到WAS上定位错误的位置,找到哪行代码报的错误

      找到错误位置为  Scheme sch = new Scheme("https", 443, sf);

      即Scheme 所在的包产生冲突

2、Tomcat控制台输出:找到报错代码行,在控制台输出该行用的类所引用的jar包

        //打印Scheme 所引用的Jar包

        String jarFilePath = Scheme.class.getProtectionDomain().getCodeSource().getLocation().getFile(); 
        jarFilePath = java.net.URLDecoder.decode(jarFilePath, "UTF-8");
        System.out.println("+++++++++++++++++++++++++++++++"+jarFilePath);


        Scheme sch = new Scheme("https", 443, sf);

3、WAS输出:放到WAS上运行输出。

        在Tomcat下,控制台输出为

        /D:/Workspaces/MyEclipse Blue Edition 10/Binding/WebRoot/WEB-INF/lib/httpclient-4.3.3.jar

        找到在WAS上该类解析的日志输出

       /wasHome/IBM/WebSphere/AppServer/plugins/com.ibm.ws.prereq.jaxrs.jar       

4、方法2

package test;

import java.io.IOException;
import java.io.PrintWriter;
import java.security.CodeSource;
import java.security.ProtectionDomain;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.httpclient.Cookie;
import org.apache.http.HttpResponse;
import org.apache.http.impl.client.DefaultHttpClient;

public class TestServlet extends HttpServlet {

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        ProtectionDomain pd1 = DefaultHttpClient.class.getProtectionDomain();  
        CodeSource cs1 = pd1.getCodeSource();  
        
        ProtectionDomain pd2 = HttpResponse.class.getProtectionDomain();  
        CodeSource cs2 = pd2.getCodeSource();  
        
        
        ProtectionDomain pd3 = Cookie.class.getProtectionDomain();  
        CodeSource cs3 = pd3.getCodeSource();  
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        out.print("   DefaultHttpClient类 导入为httpclient包,运行时JAR包是 >>>>>> ");
        out.print(cs1.getLocation());
        out.print("<br/>");
        out.print("   HttpResponse类 导入为httpcore 包 引用的 JAR包是>>>>>> ");
        out.print(cs2.getLocation());
        out.print("<br/>");
        
        out.print("   Cookie类 导入为commons-httpclient 包 引用的 JAR包是>>>>>> ");
        out.print(cs3.getLocation());
        out.print("<br/>");
        
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值