Java项目在Tomcat下能运行,到WAS上不能运行原因查找
2014-08-15 09:32
483 查看
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
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(); } }
相关文章推荐
- SSH项目部署到tomcatx能运行而之前的版本不能运行的原因
- android系统访问自己的tomcat服务器下的项目不能访问的原因
- MyEclipse 不能运行java程序原因分析
- Eclipse中通过Tomcat运行J2EE项目 java.lang.OutOfMemoryError:PermGen space的解决方案
- tomcat一次运行多个java项目
- eclipse,tomcat不能部署项目,提示Project facet Java version 1.8 is not supported
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules (web项目不能加载到服务器))
- android系统访问自己的tomcat服务器下的项目不能访问的原因
- 在tomcat8.0上运行ssh项目是出现java.lang.NoSuchFieldException: resourceEntries
- JAVA程序在eclipse下可运行但不能在cmd命令下运行的原因
- eclipse导入的web项目不能部署到tomcat,显示为java项目
- 新下载的linux 2.6内核不能运行make menuconfig原因查找
- eclipse导入的web项目不能部署到tomcat,显示为java项目
- android虚拟机访问自己的tomcat服务器下的项目不能访问的原因
- Java 项目转为Eclispe Plugin Maven项目并调试/运行在Maven内嵌的Tomcat
- adt导入老版本eclipse项目时不能运行原因
- java 运行项目不放到tomcat下的webapps文件夹下放到自己建的文件夹中的处理办法
- tomcat不能同时运行两个项目问题解决方案。
- maven jar包不能引入到tomcat web项目lib的原因
- java.lang.OutOfMemoryError:Java heap space解决方法(项目中直接运行main方法,做案例,没有启动tomcat的情况)