开发者社区> 问答> 正文

在本机跑没问题,上了linux服务器就出问题了?报错

这个是报错页。

这是他显示的错误提示段落。

方便复制我弄成文字。

type Exception report

<p>
	<b>message</b> <u>Unable to compile class for JSP: </u>
</p>
<p>
	<b>description</b> <u>The server encountered an internal error that prevented it from fulfilling this request.</u>
</p>
<p>
	<b>exception</b> 
</p>
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [14] in the generated java file: [/usr/local/tomcat/work/Catalina/localhost/dingdanorg/org/apache/jsp/update1_jsp.java]
Only a type can be imported. com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.Param resolves to a package

Stacktrace:
	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103)
	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366)
	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:485)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:379)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
<p>
	<b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/7.0.57 logs.</u>
</p>

在本机tomcat跑起来是没有这个问题的,导出来war包后放到linux服务器就出来了这个问题。求大神指点是什么错误。网上暂时没查到 

展开
收起
爱吃鱼的程序员 2020-06-08 20:35:56 811 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    可能就是你本地JDK服务器是openjdk。

    因为你使用了sun的私有类库,所以出问题了。

    要怎么修改吗?还是把库导进去就可以?新手,太多不懂。

    你用了JSF吗?JSF包好像不对把。

    Onlyatypecanbeimported.com.sun.faces.renderkit
    这个是JSF的相关包。

    JSP前面就多了这个导入<% @pageimport="com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.Param"%>我不懂是不是啊,我就是在前一个页面,用${s.device_id}&end_at=${s.end_at}"跳页面顺便传2个参数,但是end_at传过去后乱码,就用上面14行那样转了一下。为啥不打成dockerimages这样就可以避免环境差异能在现在的情况下解决吗?你说的这个我不懂,我是新手。打开update1_jsp.java,看看里面第14行回复 @JeffreyLin:我改了,把那个import删了,本机跑起来还是没问题的。现在等着上服务器,谢谢你的回答啊。回复 @qqjacky:出问题的是这句import,而不是那句转码;update1_jsp.java是update1.jsp转换得到的。精简update.jsp看看能否去掉update1_jsp.java的这句import回复 @JeffreyLin:importcom.sun.faces.renderkit.html_basic.HtmlBasicRenderer.Param;这行回复 @qqjacky:是update1_jsp.java,不是update1_jsp就是上面图片那个,Stringend=newString(request.getParameter("end_at").getBytes("iso-8859-1"),"utf-8");居然是JSP
    ??建议你看下是不是openJDK,如果是的话,直接换成官网的JDK回复 @zakari:好的,谢谢,暂时是换了个办法,没用这些转码的,是进去了action再带参数出来显示,多走了一步。本来是想着直接href带参过去的。但是要转码才显示正常。暂时问题已经解决,主要是服务器账号密码我没有,我不能经常上去试,准备自己装个虚拟机的linux自己试回复 @qqjacky:就是这样做,Linux可以放很多版本的JDK,配好对应的路径就好回复 @zakari:要重装安装?我放个解压的JDK,把路径配置到新的JDK路径上了,不能实现换JDK的版本。需要卸载了重新安装吗?我记得myeclipse里面是可以选JDK版本的回复 @qqjacky:很可能是不兼容的,最好换成和你开发环境同样的JDK回复 @zakari:version里看的是1.8,但是tomcat跟myeclipse里用的好像都是1.6啊。这样会有影响吗?服务器是1.7,应该会兼容吧。本地和服务器jdk版本不一致?version里看的是1.8,但是tomcat跟myeclipse里用的好像都是1.6啊。这样会有影响吗?服务器是1.7,应该会兼容吧。请问下,能不能直接改项目使用的jdk的?还是要在本机重新装。还有那个buildpath里的jreliabrary里显示的是1.6的JDK,跟这个是要样的东西吗?好像是服务器上的是1.7.0我本机是1.8我好像也遇到过,
    2020-06-08 20:36:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载