起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3497|回复: 10

[结贴] “E3”附近有语法错误

[复制链接]

6

主题

25

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
发表于 2018-7-27 11:03:15 | 显示全部楼层 |阅读模式
在运行时出现了如下报错:

检查了出错的文件和相关的内容,并没有E3这个内容,不知道哪里的问题……
编译过程中也没有报错,只在运行中报错,tomcat后台也没有错误信息。

希望能帮助解决~


TIM截图20180727105811.png

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35962
发表于 2018-7-27 11:38:32 | 显示全部楼层
看tomcat控制台完整的错误信息,这个错误tomcat控制台肯定有错误信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

25

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2018-7-27 13:09:22 | 显示全部楼层
jishuang 发表于 2018-7-27 11:38
看tomcat控制台完整的错误信息,这个错误tomcat控制台肯定有错误信息

七月 27, 2018 10:57:59 上午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
com.justep.baas.action.ActionException: Action[GvA/RecipeContent/analysis]执行失败,“E3”附近有语法错误。
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)

找到了……之前没有看到,不好意思
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35962
发表于 2018-7-27 13:48:19 | 显示全部楼层
就这么多吗?
跟踪调试action代码看具体执行到什么地方报错的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

25

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2018-7-27 14:04:19 | 显示全部楼层
jishuang 发表于 2018-7-27 13:48
就这么多吗?
跟踪调试action代码看具体执行到什么地方报错的

2018-07-27 14:01:19 Action[GvA/RecipeContent/analysis]执行失败,“E3”附近有语法错误。
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLException: “E3”附近有语法错误。
        at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
        at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
        at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
        at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:633)
        at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
        at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
        at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:475)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
        at GvA.duser.Ana(duser.java:160)
        at GvA.RecipeContent__do.analysis(RecipeContent__do.java:171)
        ... 20 more
2018-07-27 14:01:19 Action[GvA/RecipeContent/analysis]执行失败,“E3”附近有语法错误。
com.justep.baas.action.ActionException: Action[GvA/RecipeContent/analysis]执行失败,“E3”附近有语法错误。
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
七月 27, 2018 2:01:19 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet WeX5_Baas_Servlet threw exception
com.justep.baas.action.ActionException: Action[GvA/RecipeContent/analysis]执行失败,“E3”附近有语法错误。
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.action.Engine.execAction(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.execService(Unknown Source)
        at com.justep.baas.servlet.BaasServlet.service(Unknown Source)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:745)
各种重启之后再次运行的报错。

我再去断点调试一下试试……
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35962
发表于 2018-7-27 14:32:42 | 显示全部楼层
GvA.duser.Ana(duser.java:160)
已经调试到java代码了,断点调试一下
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

25

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2018-8-8 11:07:37 | 显示全部楼层
经过断点调试之后发现报错处在  pstmt.execute();  这里,不知接下来如何修改,整段代码贴在下面

public static JSONObject Ana(JSONObject params, ActionContext context) throws SQLException, NamingException {  

            String UserId = params.getString("UserId");
            String RecipeId = params.getString("RecipeId");
            String AId = params.getString("AId");
            String RPId = params.getString("RPId");           
            String RT = params.getString("RT");
            String RU = params.getString("RU");  
        
        Connection conn = context.getConnection(DATASOURCE_BLSHOPAPP);  
        
        try{  
            
            JSONObject ret = new JSONObject();  
               
            java.sql.PreparedStatement pstmt = null;
                pstmt = conn.prepareStatement(" declare @O as nvarchar(50),@P as nvarchar(50),@Q as nvarchar(50),@RU as nvarchar(50),@RT as nvarchar(50),@Us as nvarchar(50),@CW as nvarchar(50),@RD as nvarchar(50),@CN as nvarchar(50),@CG as nvarchar(50),@CB as nvarchar(50),@ADIN as nvarchar(50),@un as nvarchar(50), " +
                                " @A as nvarchar(50),@X as nvarchar(50),@Y as nvarchar(50),@Z as nvarchar(50),@B as nvarchar(500),@AXA as nvarchar(500),@temp as nvarchar(50),@N as nvarchar(50),@U as nvarchar(50),@V as nvarchar(50),@W as nvarchar(50) " +
                                " set @Q=? set @P=? set @O=? set @Us=? set @RT=? set @RU=? " +
                                    " truncate table AnalysisResult " +
                                " set @B=N'select @CW=ClientWeight from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CW nvarchar(50) output',@CW output set @B=N'select @RD=RecipeDays from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@RD nvarchar(50) output',@RD output set @B=N'select @CN=ClientName from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CN nvarchar(50) output',@CN output set @B=N'select @CG=ClientGender from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CG nvarchar(50) output',@CG output set @B=N'select @CB=ClientBirthday from Recipe where RecipeId='+@O+' ' exec sp_executesql @B,N'@CB nvarchar(50) output',@CB output " +  
                                    " exec('declare C cursor fast_forward for select ADFieldName,ADSAdjust,ADSField,ADSField1,ADItemName,unit from AnalysisDetail where AId ='+@P+' ') " +
                                " open C " +
                                    " fetch next from C into @A,@X,@Y,@Z,@ADIN,@un " +
                                " while @@fetch_status =0 " +
                                    " begin " +
                                " set @B = N'select @N='+@A+' from RecipeContent where UserId ='+@RU+' and RecipeId ='+@O         " +
                                    " exec sp_executesql @B,N'@N nvarchar(50) output',@N output " +
                                " if @X=0 " +
                                    " begin " +
                                " if @Y!=NULL " +
                                    " begin " +
                                " set @B=N'select @U='+@Y+' from IntakeStandard where RPId='+@Q+' ' " +
                                    " exec sp_executesql @B,N'@U nvarchar(50) output',@U output " +
                                " end " +
                                    " else " +
                                " begin " +
                                    " set @U='NULL' " +
                                " end " +
                                    " if @Z!=NULL " +
                                " begin " +
                                    " set @B=N'select @V='+@Z+' from IntakeStandard where RPId='+@Q+' ' " +
                                " exec sp_executesql @B,N'@V nvarchar(50) output',@V output " +
                                    " end " +
                                " else " +
                                    " begin " +
                                " set @V='NULL' " +
                                    " end " +
                                " end " +
                                    " else if @X=1 " +
                                " begin " +
                                    " set @B=N'select @U='+@Y+' from IntakeStandard where RPId='+@Q+' ' " +
                                " exec sp_executesql @B,N'@U nvarchar(50) output',@U output " +
                                    " set @B=N'set @U='+@U+'*'+@CW+' ' " +
                                " exec sp_executesql @B,N'@U nvarchar(50) output',@U output " +
                                    " set @V='NULL' " +
                                " end " +
                                    " set @B=N'set @temp='+@N+'/'+@RD+' ' " +
                                " exec sp_executesql @B,N'@temp nvarchar(50) output',@temp output " +
                                    " select @AXA='insert into AnalysisResult(AId,RecipeId,UserIntake,ADSAdjust,UserId,UserStandard,UserStandard1,ADItemName,unit) Values('+@P+',1,'+@temp+','+@X+','+@Us+','+@U+','+@V+','''+@ADIN+''','''+@un+''')' " +
                                " exec(@AXA) " +
                                    " fetch next from C into @A,@X,@Y,@Z,@ADIN,@un " +
                                " end " +
                                    " close C " +
                                " deallocate C " +
                                    " TRUNCATE TABLE ARSave " +
                                " declare @AK nvarchar(50),@RN nvarchar(50),@RPG nvarchar(50) " +
                                    " set @B=N'select @AK = AKind from AnalysisDetail where AId ='+@P+' ' " +
                                " exec sp_executesql @B,N'@AK nvarchar(50) output',@AK output " +
                                    " set @B=N'select @RN = RecipeName from RecipeContent where RecipeId = '+@O+' ' " +
                                " exec sp_executesql @B,N'@RN nvarchar(50) output',@RN output " +
                                    " set @B=N'select @RPG = RPGroup from IntakeStandard where RPId = '+@Q+' ' " +
                                " exec sp_executesql @B,N'@RPG nvarchar(50) output',@RPG output " +
                                    " insert into ARSave(AKind,RecipeName,RPGroup,ClientName,ClientBirthday,ClientWeight,ClientGender,RecipeDay,UserId,RecentTime,RecentUser) values(@AK,@RN,@RPG,@CN,@CB,@CW,@CG,@RD,@Us,@RT,@RU)");
                pstmt.setString(1,RPId);
                pstmt.setString(2,AId);
                pstmt.setString(3,RecipeId);
                pstmt.setString(4,UserId);
                pstmt.setString(5,RT);
                pstmt.setString(6,RU);
               
                pstmt.execute(); //断点调试报错处
               
                ret.put("state", "1");
                return ret;
        } finally {
            conn.close();
        }
    }
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35962
发表于 2018-8-8 11:13:24 | 显示全部楼层
pstmt.execute();就是执行sql,说明sql有问题
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

25

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2018-8-8 11:18:30 | 显示全部楼层
jishuang 发表于 2018-8-8 11:13
pstmt.execute();就是执行sql,说明sql有问题

但是我把sql单拿出来在SSMS里执行就没有问题啊……
我再去检查一下看看……
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35962
发表于 2018-8-8 11:43:26 | 显示全部楼层
确认是不是跟传的参数有关
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-6-17 08:18 , Processed in 0.077204 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表