百度Ueditor的controller.jsp文件报错

在使用ueditor时遇到上传文件配置错误,通常因缺少ueditor/jsp/lib下的jar包。确保将jar包加入到build路径,并检查是否在不同环境(如生产环境)中正确打包。尝试将controller.jsp的Java代码迁移到controller.java,如果能编译通过则表明jar包已包含。同时,别忘了更新ueditor.config.js中的serverUrl为上传请求路径。

遇到的问题是:在使用ueditor时,浏览器总报上传文件配置不正确,不能使用上传功能。
一般来说这个问题是因为ueditor/jsp/lib 下面的jar包没有编译到项目里面去导致的。把jar包加入到build里面就可以解决问题了。
我的开发环境就是这样解决的。然后使用jenkins maven打包发布到测试环境也是没问题的。但是发布到生产环境时这个问题又出现了。我一看jar包确实没有在war包解压后的目录下。后面手动导入了jar包还是不行。也参考了很多博客发现没有人碰到和我相同的情况。说了这么多,来看一下具体怎么解决。
我的思路是这样的 既然这个问题是没有jar包引起的,那么我把controller.jsp中的java代码放到controller.java中肯定是编译不通过的。同理,只要我controller.java能编译通过那就说明jar包是build进来了。
看我的实现代码

    @RequestMapping("/upload")
    public void upload(HttpServletResponse response) {

        try {
            request.setCharacterEncoding( "utf-8" );
            response.setHeader("Content-Type" , "text/html");

            String rootPath = request.getRealPath( "/" );
            System.out.println(rootPath);
            response.getWriter().write( new ActionEnter( request, rootPath ).exec() );
        } catch (Exception e) {
            log.error(">>>>>>ueditor文件上传服务出错");
        }
    }

这边写完了之后还需要把ueditor.config.js 里面的serverUrl 修改成刚刚upload的请求路径,因为整个ueditor是放在static静态文件目录下。所以URL需要进行切割

        // 服务器统一请求接口路径
        // , serverUrl: URL + "jsp/controller.jsp"
        , serverUrl: URL.split("static")[0] + "webArticle/upload.json"

像其他的常规解决办法我就不在这里写了。大部分博客都是这么写的。这个问题折磨了我一个下午。写下此文记录,也希望对大家有帮助。
最后贴上错误代码供大家参考

18-Jul-2019 18:12:00.943 SEVERE [http-nio-12002-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with p
ath [/static] threw exception [Unable to compile class for JSP: 

An error occurred at line: [14] in the generated java file: [/opt/tomcat/8.0.21/instancesjs/admin/work/JFB-WX/localhost/static/org/apache/jsp/admin/js/udeitor/jsp
/controller_jsp.java]
Only a type can be imported. com.baidu.ueditor.ActionEnter resolves to a package

An error occurred at line: 12 in the jsp file: /admin/js/udeitor/jsp/controller.jsp
ActionEnter cannot be resolved to a type
9:      
10:     String rootPath = application.getRealPath( "/" );
11:     
12:     out.write( new ActionEnter( request, rootPath ).exec() );
13:     
14: %>


Stacktrace:] with root cause
 org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [14] in the generated java file: [/opt/tomcat/8.0.21/instancesjs/admin/work/JFB-WX/localhost/static/org/apache/jsp/admin/js/udeitor/jsp
/controller_jsp.java]
Only a type can be imported. com.baidu.ueditor.ActionEnter resolves to a package

An error occurred at line: 12 in the jsp file: /admin/js/udeitor/jsp/controller.jsp
ActionEnter cannot be resolved to a type
9:      
10:     String rootPath = application.getRealPath( "/" );
11:     
12:     out.write( new ActionEnter( request, rootPath ).exec() );
13:     
14: %>

Stacktrace:
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:580)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值