博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JimStoneAjax使用ANT或者Maven等自动部署工具编译时需要添加debug参数
阅读量:7071 次
发布时间:2019-06-28

本文共 927 字,大约阅读时间需要 3 分钟。

hot3.png

    (JimStoneAjax交流群:366984517)

    在使用JimStoneAjax时,一些特殊场合下如果是通过参数名称的方式访问服务器命令,可能会失败。

    如果是使用 Spring MVC 的朋友,可能遇到过这样的问题,线上环境中如果你的 Controller 方法中参数使用了 @RequestParam,有些参数我们不需要这个参数所以不加 @RequestParam 那么可能线上环境无法编译或者无法访问到这个请求。实际上和这个是同一个情况,就是 spring 无法获取到参数名称,导致注入失败。

    主要原因是服务器编译class文件时没有生成参数名称信息,所以无法动态获取到,JimStoneAjax会自动通过参数位置设置参数名为 arg0,arg1....argN。我们从 Eclipse 中经常看到一些类提示信息参数名称就是这种名称的,一般都是因为编译时没有代入参数名称信息所以无法获取到真实名称。

    大家在使用 JimStoneAjax 过程主要用到的标签其实就一个,就是 <ajax:script>。

    这个编译问题主要会影响到 <ajax:load> 方法,我们知道,ajax:load 方法是通过参数名称传递参数值的。

    解决办法主要两种:

         建议使用第二种方法。

         第一种是参数名称按照顺序,直接使用 arg0, arg1 等。但是这种方法有个问题,就是需要调节 eclipse 中的项目配置。我们的 eclipse 在项目属性中的 Java compiler 编译选项下的 Add variable attributes to generated class files 选项默认是选中的,所以开发环境通常是正常的,线上环境和开发环境的参数名称可能不一致。

            

        第二种方法是修改编译参数,这种方法最为可靠。

            使用 javac 指令编译的话可以加入 -d 参数。

            使用 Ant 编译项目时可以给 javac 编译选项加入debug="true" debuglevel="lines,vars,source" 两个参数即可。

转载于:https://my.oschina.net/jimstone/blog/181785

你可能感兴趣的文章
首页设计的可用性和PET
查看>>
mongodb的分布式集群(1、主从复制)
查看>>
http://www.cnblogs.com/yaozhenfa/archive/2015/06/14/4574898.html
查看>>
动态为DropDownList添加Item
查看>>
spring NotWritablePropertyException异常
查看>>
在单页应用中,如何优雅的监听url的变化
查看>>
iOS开发证书"此证书的签发者无效"解决方法
查看>>
Python实现的通用树结构,支持节点索引,常数时间查找
查看>>
网络传输协议
查看>>
iOS Principle:Category
查看>>
Java多线程之synchronized增强版——ReentrantLock
查看>>
MVP设计模式应该这样掌握
查看>>
Git标签的管理和配置命令别名
查看>>
对UIView,UIWindow和CALayer的理解
查看>>
使用javap分析Java的字符串操作
查看>>
Node.js-Koa2-MongoDB构建RESTful Api
查看>>
饿了么UETool原理初探
查看>>
Android基础 和服务器交互你必须知道的json处理
查看>>
2018阿里云云数据库RDS核心能力演进
查看>>
JAVA面试 基础加强与巩固:反射、注解、泛型等
查看>>