在 shell 程式中,最常使用的 FD (file descriptor) 大概有三个, 分别是:
0: Standard Input (STDIN) 键盘输入,并返回在前端
1: Standard Output (STDOUT) 正确返回值 输出到前端
2: Standard Error Output (STDERR) 错误返回值 输出到前端
容器脚本启动均有日志输出,既容器控制台输出,若不想java代码将日志输出到控制台需要通过java日志配置关闭控制台日志输出
& 默认返回错误(默认执行命令也是输出错误) 在java程序System.err.print错误信息输出到服务控制台日志
1>&2 将正确返回从新定位输出到错误输出上 在java程序中及将System.out.print的数据输出到System.err.print一起输出到服务控制台日志
2>&1 强错误返回从新定位到输出到正确输出上 在java程序中及将System.err.print的数据输出到System.out.print一起输出到服务控制台日志
log.info("err:"+e);
输出如下:
org.springframework.dao.DuplicateKeyException: ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ### The error may involve com.trunkbow.online.persist.online.OrderMapper.saveOrder-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO T_ORDER ( id, NUM, CUST_NUM, ORDER_TYPE, PAY_TYPE, CARD_NO, LIMIT_TYPE, CURRENCY, AMT, ORIGINAL_AMT, POINT, STAGE, STAGE_TYPE, ORDER_DATE, FQ_FIRSTMONEY, FQ_POUNDAGE, PAY_SOURCE, HOST_NO, HOST_DATE, BACK_AMOUNT, BACK_POINT, REFUND_AMOUNT, REFUND_PONT, RETIRED_NUMBER, ORIGINAL_ORDER, ORIGINAL_DATE, STATE, ERROR_CODE, ERROR_INF, REMARK ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; SQL []; ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01)
1、e.getMessage():
### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ### The error may involve com.trunkbow.online.persist.online.OrderMapper.saveOrder-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO T_ORDER ( id, NUM, CUST_NUM, ORDER_TYPE, PAY_TYPE, CARD_NO, LIMIT_TYPE, CURRENCY, AMT, ORIGINAL_AMT, POINT, STAGE, STAGE_TYPE, ORDER_DATE, FQ_FIRSTMONEY, FQ_POUNDAGE, PAY_SOURCE, HOST_NO, HOST_DATE, BACK_AMOUNT, BACK_POINT, REFUND_AMOUNT, REFUND_PONT, RETIRED_NUMBER, ORIGINAL_ORDER, ORIGINAL_DATE, STATE, ERROR_CODE, ERROR_INF, REMARK ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; SQL []; ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01)
2、e.getCause().getMessage():
ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01)
3、e.getLocalizedMessage():
### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ### The error may involve com.trunkbow.online.persist.online.OrderMapper.saveOrder-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO T_ORDER ( id, NUM, CUST_NUM, ORDER_TYPE, PAY_TYPE, CARD_NO, LIMIT_TYPE, CURRENCY, AMT, ORIGINAL_AMT, POINT, STAGE, STAGE_TYPE, ORDER_DATE, FQ_FIRSTMONEY, FQ_POUNDAGE, PAY_SOURCE, HOST_NO, HOST_DATE, BACK_AMOUNT, BACK_POINT, REFUND_AMOUNT, REFUND_PONT, RETIRED_NUMBER, ORIGINAL_ORDER, ORIGINAL_DATE, STATE, ERROR_CODE, ERROR_INF, REMARK ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; SQL []; ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01)
4、e.getCause().getLocalizedMessage():
ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01)
5、e.getCause():
java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01)
6、e.getCause().class():
class java.sql.SQLIntegrityConstraintViolationException
7、e.getStackTrace():[Ljava.lang.StackTraceElement;@21ea3360
8、e.getCause().getStackTrace():[Ljava.lang.StackTraceElement;@21ea3f0a
9、e.printStackTrace()
org.springframework.dao.DuplicateKeyException: ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ### The error may involve com.trunkbow.online.persist.online.OrderMapper.saveOrder-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO T_ORDER ( id, NUM, CUST_NUM, ORDER_TYPE, PAY_TYPE, CARD_NO, LIMIT_TYPE, CURRENCY, AMT, ORIGINAL_AMT, POINT, STAGE, STAGE_TYPE, ORDER_DATE, FQ_FIRSTMONEY, FQ_POUNDAGE, PAY_SOURCE, HOST_NO, HOST_DATE, BACK_AMOUNT, BACK_POINT, REFUND_AMOUNT, REFUND_PONT, RETIRED_NUMBER, ORIGINAL_ORDER, ORIGINAL_DATE, STATE, ERROR_CODE, ERROR_INF, REMARK ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ) ### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; SQL []; ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) ; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) at com.sun.proxy.$Proxy125.insert(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:240) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:51) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) at com.sun.proxy.$Proxy134.saveOrder(Unknown Source) at com.trunkbow.epay.alipay.service.impl.PayService.saveOrder(PayService.java:408) at com.trunkbow.epay.alipay.service.impl.PayService.doCheckRepeatByInsert(PayService.java:155) at com.trunkbow.epay.alipay.handler.CPHandler.doHandle(CPHandler.java:66) at com.trunkbow.epay.alipay.handler.CPHandler.doHandle(CPHandler.java:29) at com.trunkbow.alipay.message.service.imp.AbstractHandler.handle(AbstractHandler.java:47) at com.trunkbow.alipay.message.service.imp.SimpleDispathcher.dispatch(SimpleDispathcher.java:54) at com.trunkbow.alipay.message.controller.MessageController.execute(MessageController.java:85) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at com.trunkbow.epay.filter.TimeFilter.doFilter(TimeFilter.java:40) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (ALIPAY.UK_T_ORDER_01) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1044) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3593) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3694) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1378) at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:99) at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:44) at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:69) at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:48) at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:105) at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:71) at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:152) at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358) ... 48 more