1
저장 작업을 트리거 할 때 id의 getter를 호출하는 중 IllegalArgumentException이 발생했습니다.grails 3.2.1/Tomcat 7.0.72 - id의 getter를 호출하는 중에 IllegalArgumentException이 발생했습니다.
이 문제는 Tomcat 서버에 전쟁을 배포 할 때 직면하게됩니다. 나는 run-app 할 때 아무 문제없이 MySQL DB에 저장할 수있다.
컨트롤러 - -
@Transactional
def save(Handleprops handleprops) {
if (handleprops == null) {
transactionStatus.setRollbackOnly()
notFound()
return
}
if (handleprops.hasErrors()) {
transactionStatus.setRollbackOnly()
respond handleprops.errors, view:'create'
return
}
handleprops.save flush:true
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.created.message', args: [message(code: 'handleprops.label', default: 'Handleprops'), handleprops.id])
redirect handleprops
}
'*' { respond handleprops, [status: HttpStatus.CREATED] }
}
}
도메인 -
클래스 Handleprops {
여기내 코드의 자세한 사항이었다
static constraints = {
rbo(blank: false, unique: ['recordType','recordColumn'])
recordType(blank: false, inList:["10", "20", "30", "40"], unique: ['rbo','recordColumn'])
recordColumn(blank: false, unique: ['rbo','recordType'])
variableCode(nullable:true, blank:true)
startPos(blank: false)
endPos(blank: false)
}
int id
String rbo
String recordType
String recordColumn
String variableCode
Integer startPos
Integer endPos
}
보기 -
</g:hasErrors>
<g:form action="save">
<fieldset class="form">
<f:all bean="handleprops"/>
</fieldset>
<fieldset class="buttons">
<g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
</fieldset>
</g:form>
Build.gradle -
dependencies {
compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-autoconfigure"
compile "org.grails:grails-core"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-dependencies"
compile "org.grails:grails-web-boot"
compile "org.grails.plugins:cache"
compile "org.grails.plugins:scaffolding"
compile "org.grails.plugins:hibernate5"
compile "org.hibernate:hibernate-core:5.1.1.Final"
compile "org.hibernate:hibernate-ehcache:5.1.1.Final"
console "org.grails:grails-console"
profile "org.grails.profiles:web"
runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.11.1"
runtime "com.h2database:h2"
testCompile "org.grails:grails-plugin-testing"
testCompile "org.grails.plugins:geb"
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"
//runtime "org.grails.plugins:myplugin:0.1-SNAPSHOT" \t
runtime "mysql:mysql-connector-java:5.1.40"
\t
\t //Following code will apply for explict Project war deployment to tomcat server
\t provided "org.springframework.boot:spring-boot-starter-tomcat"
\t
}
application.yml -
dataSource:
pooled: true
jmxExport: true
driverClassName: "com.mysql.jdbc.Driver"
dialect: "org.hibernate.dialect.MySQL5InnoDBDialect"
username: "grailsuser"
password: "grailsuser1"
environments:
development:
dataSource:
pooled: true
dbCreate: create-drop
url: "jdbc:mysql://127.0.0.1:3306/grailsdbdev?useSSL=false"
** 스택 트레이스 **
ERROR org.hibernate.property.access.spi.GetterMethodImpl - HHH000122: IllegalArgumentException in class: ecommutils.Handleprops, getter method of property: id
ERROR StackTrace - Full Stack Trace:
org.springframework.orm.hibernate5.HibernateSystemException: IllegalArgumentException occurred calling getter of ecommutils.Handleprops.id; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of ecommutils.Handleprops.id
\t at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:296)
\t at org.grails.orm.hibernate.GrailsHibernateTemplate.convertHibernateAccessException(GrailsHibernateTemplate.java:661)
\t at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:247)
\t at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:187)
\t at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:110)
\t at org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.performSave(AbstractHibernateGormInstanceApi.groovy:234)
\t at org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.save(AbstractHibernateGormInstanceApi.groovy:154)
\t at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:151)
\t at org.grails.datastore.gorm.GormEntity$Trait$Helper$save$2.call(Unknown Source)
\t at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
\t at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
\t at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
\t at ecommutils.Handleprops.save(Handleprops.groovy)
\t at ecommutils.Handleprops.save(Handleprops.groovy)
\t at org.grails.datastore.gorm.GormEntity$save.call(Unknown Source)
\t at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
\t at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
\t at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
\t at ecommutils.HandlepropsController.$tt__save(HandlepropsController.groovy:38)
\t at ecommutils.HandlepropsController$_save_closure2.doCall(HandlepropsController.groovy)
\t at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\t at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
\t at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
\t at java.lang.reflect.Method.invoke(Unknown Source)
\t at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
\t at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
\t at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
\t at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
\t at groovy.lang.Closure.call(Closure.java:414)
\t at groovy.lang.Closure.call(Closure.java:430)
\t at grails.transaction.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:96)
\t at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
\t at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93)
\t at ecommutils.HandlepropsController.save(HandlepropsController.groovy)
\t at ecommutils.HandlepropsController.$tt__save(HandlepropsController.groovy)
\t at ecommutils.HandlepropsController$_save_closure8.doCall(HandlepropsController.groovy)
\t at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\t at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
\t at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
\t at java.lang.reflect.Method.invoke(Unknown Source)
\t at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
\t at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
\t at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
\t at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
\t at groovy.lang.Closure.call(Closure.java:414)
\t at groovy.lang.Closure.call(Closure.java:430)
\t at grails.transaction.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:96)
\t at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
\t at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:93)
\t at ecommutils.HandlepropsController.save(HandlepropsController.groovy)
\t at org.grails.core.DefaultGrailsControllerClass$MethodHandleInvoker.invoke(DefaultGrailsControllerClass.java:222)
\t at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:187)
\t at org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
\t at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
\t at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
\t at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
\t at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
\t at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
\t at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
\t at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:105)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:107)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
\t at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:61)
\t at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:94)
\t at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
\t at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:112)
\t at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
\t at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
\t at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
\t at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
\t at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
\t at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
\t at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
\t at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
\t at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
\t at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
\t at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
\t at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
\t at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
\t at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
\t at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
\t at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
\t at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
\t at java.lang.Thread.run(Unknown Source)
강력한 텍스트
감사합니다. 3.2.2를 업그레이드 한 후 잘 작동합니다. – yankee