Advertisement
Guest User

Untitled

a guest
Oct 5th, 2016
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.63 KB | None | 0 0
  1. org.springframework.retry.ExhaustedRetryException: Retry exhausted after last attempt in recovery path, but exception is not skippable.; nested exception is org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [insert into employee(empid,city,country) values(?,?,?)]; Duplicate entry '1' for key 'PRIMARY'; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
  2. at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor$5.recover(FaultTolerantChunkProcessor.java:403)
  3. at org.springframework.retry.support.RetryTemplate.handleRetryExhausted(RetryTemplate.java:458)
  4. at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:320)
  5. at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:193)
  6. at org.springframework.batch.core.step.item.BatchRetryTemplate.execute(BatchRetryTemplate.java:217)
  7. at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor.write(FaultTolerantChunkProcessor.java:420)
  8. at org.springframework.batch.core.step.item.SimpleChunkProcessor.process(SimpleChunkProcessor.java:199)
  9. at org.springframework.batch.core.step.item.ChunkOrientedTasklet.execute(ChunkOrientedTasklet.java:75)
  10. at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:406)
  11. at org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:330)
  12. at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
  13. at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:271)
  14. at org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:81)
  15. at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:374)
  16. at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215)
  17. at org.springframework.batch.repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:144)
  18. at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:257)
  19. at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:200)
  20. at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148)
  21. at org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:64)
  22. at org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:67)
  23. at org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:169)
  24. at org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:144)
  25. at org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:134)
  26. at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:306)
  27. at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135)
  28. at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50)
  29. at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128)
  30. at javabeat.net.Main.main(Main.java:21)
  31. Caused by: org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [insert into employee(empid,city,country) values(?,?,?)]; Duplicate entry '1' for key 'PRIMARY'; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
  32. at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)
  33. at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
  34. at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:645)
  35. at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:866)
  36. at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:927)
  37. at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:937)
  38. at javabeat.net.OrderItemWriter.write(OrderItemWriter.java:23)
  39. at org.springframework.batch.core.step.item.SimpleChunkProcessor.writeItems(SimpleChunkProcessor.java:175)
  40. at org.springframework.batch.core.step.item.SimpleChunkProcessor.doWrite(SimpleChunkProcessor.java:151)
  41. at org.springframework.batch.core.step.item.FaultTolerantChunkProcessor$3.doWithRetry(FaultTolerantChunkProcessor.java:328)
  42. at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:263)
  43. ... 26 more
  44. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY'
  45. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  46. at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  47. at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  48. at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
  49. at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
  50. at com.mysql.jdbc.Util.getInstance(Util.java:383)
  51. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1049)
  52. at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
  53. at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
  54. at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
  55. at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
  56. at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2840)
  57. at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
  58. at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2334)
  59. at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2262)
  60. at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2246)
  61. at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:873)
  62. at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:866)
  63. at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
  64. ... 34 more
  65.  
  66. <beans xmlns="http://www.springframework.org/schema/beans"
  67. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  68. xmlns:jdbc="http://www.springframework.org/schema/jdbc"
  69. xmlns:context="http://www.springframework.org/schema/context"
  70. xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
  71. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  72. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  73.  
  74. <!-- stored job-meta in database -->
  75. <bean id="jobRepository" class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">
  76. <property name="dataSource" ref="dataSource" />
  77. <property name="transactionManager" ref="transactionManager" />
  78. <property name="databaseType" value="mysql" />
  79. </bean>
  80.  
  81. <bean id="transactionManager"
  82. class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
  83.  
  84. <bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
  85. <property name="jobRepository" ref="jobRepository" />
  86. </bean>
  87. </beans>
  88.  
  89. <?xml version="1.0" encoding="UTF-8"?>
  90. <beans xmlns="http://www.springframework.org/schema/beans"
  91. xmlns:jdbc="http://www.springframework.org/schema/jdbc"
  92. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  93. xmlns:context="http://www.springframework.org/schema/context"
  94. xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
  95. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  96. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  97.  
  98.  
  99. <context:property-placeholder location="classpath:database.properties" />
  100.  
  101. <!-- connect to database -->
  102. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  103. <property name="driverClassName" value="${jdbc.mysql.driverClassName}" />
  104. <property name="url" value="${jdbc.mysql.url}" />
  105. <property name="username" value="${jdbc.mysql.username}" />
  106. <property name="password" value="${jdbc.mysql.password}" />
  107. </bean>
  108.  
  109. <bean id="transactionManager"
  110. class="org.springframework.batch.support.transaction.ResourcelessTransactionManager" />
  111.  
  112. <!-- create job-meta tables automatically In production you don't need to
  113. create this every time. Just create once in production. -->
  114. <jdbc:initialize-database data-source="dataSource">
  115. <jdbc:script location="org/springframework/batch/core/schema-drop-mysql.sql" />
  116. <jdbc:script location="org/springframework/batch/core/schema-mysql.sql" />
  117. </jdbc:initialize-database>
  118. </beans>
  119.  
  120. <beans xmlns="http://www.springframework.org/schema/beans"
  121. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:batch="http://www.springframework.org/schema/batch"
  122. xsi:schemaLocation="http://www.springframework.org/schema/beans
  123. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  124. http://www.springframework.org/schema/batch
  125. http://www.springframework.org/schema/batch/spring-batch-3.0.xsd">
  126.  
  127. <import resource="datasource-config.xml" />
  128. <import resource="job-context.xml" />
  129.  
  130. <!-- JOB -->
  131. <job id="employeeJob" xmlns="http://www.springframework.org/schema/batch">
  132. <step id="employeeprocessor">
  133. <tasklet>
  134. <chunk reader="reader" writer="writer" commit-interval="3" processor="employeeProcessor" skip-limit="1">
  135. <skippable-exception-classes>
  136. <include class="org.springframework.batch.item.file.FlatFileParseException" />
  137. </skippable-exception-classes>
  138. </chunk>
  139. </tasklet>
  140. </step>
  141. <!-- <batch:listeners>
  142. <batch:listener ref="jobListener" />
  143. </batch:listeners> -->
  144. </job>
  145.  
  146.  
  147. <!-- ============= ItemReader ================== -->
  148. <bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
  149. <property name="resource" value="classpath:input/employees.csv" />
  150.  
  151. <property name="linesToSkip" value="1" />
  152.  
  153. <property name="lineMapper">
  154. <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
  155. <property name="lineTokenizer">
  156. <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
  157. <property name="names" value="EMP_ID,CITY,COUNTRY" />
  158. <property name="delimiter" value="," />
  159. </bean>
  160. </property>
  161. <property name="fieldSetMapper">
  162. <bean class="javabeat.net.EmployeeFieldSetMapper" />
  163. </property>
  164. </bean>
  165. </property>
  166. </bean>
  167.  
  168. <bean id="employeeProcessor" class="javabeat.net.EmployeeProcessor" />
  169.  
  170. <!-- Optional JobExecutionListener to perform business logic before and after the job -->
  171. <bean id="jobListener" class="javabeat.net.EmployeeJobListener" />
  172.  
  173. <bean id="writer" class="javabeat.net.OrderItemWriter">
  174. <constructor-arg ref="dataSource" />
  175. </bean>
  176. </beans>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement