elasticsearch2.4项目JBOSS启动后遇到的java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW问题探究
2016-09-25 13:07
896 查看
该项目在tomcat环境下启动完全正常,可是放到jboss中启动,在执行execute()方法时,总是报错,错误如下:
定位了两天,只是根据报错的原因认为是引入的api里面jar包版本冲突等问题,因此没有任何的收货。
偶然看到文章:
http://blog.csdn.net/izgnaw/article/details/18045879
提供了一个新的思路,就是在jboss中,可能已经引用了jackson-core,只不过这个里面的版本过低,造成无法提供相应的字段值,FAIL_ON_SYMBOL_HASH_OVERFLOW 这个field是在v2.4版本后才有的。
因为jboss环境不熟悉,遇到的问题是在公司环境中,所以无法容易定位,因此下载了一个jboss环境,果然搜索到了环境中有一个jar包
如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/20/6204a7d4bce02311fdff47f4fdc75573)
因为环境的问题,周末无法去验证这个想法:先把方案写下来,周一验证:
方案1:在jboss工程deployment配置文件中排除掉java-core的jar包
实例如下:
ATTENTION:在jboss中有多个module都引用了jackson-core模块,如果不排除干净的话jar包冲突的问题还是解决不了的。在我的jboss版本中主要是下面四个module。
———————–以上是问题描述和方案——————————-
http://blog.csdn.net/izgnaw/article/details/18045879
https://docs.jboss.org/resteasy/docs/3.0.2.Final/userguide/html/json.html
https://discuss.elastic.co/t/noclassdeffounderror-could-not-initialize-class-org-elasticsearch-common-xcontent-smile-smilexcontent/36396/3
http://stackoverflow.com/questions/37353214/java-lang-nosuchfielderror-fail-on-symbol-hash-overflow-in-elasticsearch-watch
https://discuss.elastic.co/t/error-java-lang-nosuchfielderror-fail-on-symbol-hash-overflow/44759
ERROR [io.undertow.request] (default task-7) UT005023: Exception handling request to /riskcontroll-admin/monitor/monitorList.htm: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW at org.springframework.web.servlet.DispatcherServlet.doDispatch$baymax(DispatcherServlet.java:972) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at com.company.riskcontroll.filter.UrlAuthFilter.doFilter(UrlAuthFilter.java:59) [classes:] at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at com.company.ids.client.AuthenticationFilter.doFilter(AuthenticationFilter.java:112) [ids-client-2.0.4.jar:2.0.4] at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at com.company.riskcontroll.filter.UaaAuthFilter.doFilter(UaaAuthFilter.java:49) [classes:] at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest$baymax(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:241) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:228) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:74) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:147) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] Caused by: java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW at org.elasticsearch.common.xcontent.smile.SmileXContent.<clinit>(SmileXContent.java:46) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.common.xcontent.XContentFactory.contentBuilder(XContentFactory.java:124) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.action.support.ToXContentToBytes.buildAsBytes(ToXContentToBytes.java:62) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.action.search.SearchRequest.source(SearchRequest.java:250) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.action.search.SearchRequestBuilder.beforeExecute(SearchRequestBuilder.java:1027) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.action.search.SearchRequestBuilder.beforeExecute(SearchRequestBuilder.java:50) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:86) [elasticsearch-2.3.3.jar:2.3.3] at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:56) [elasticsearch-2.3.3.jar:2.3.3] at com.company.riskcontroll.external.elasticsearch.ElasticSearchOperate.searchByBoolQuery(ElasticSearchOperate.java:140) [riskcontroll-service-0.0.1.jar:] at com.company.riskcontroll.impl.service.ESMonitorServiceImpl.getTodayMonitorList(ESMonitorServiceImpl.java:67) [riskcontroll-service-0.0.1.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) [spring-tx-3.2.8.RELEASE.jar:3.2.8.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) [spring-aop-3.1.2.RELEASE.jar:3.1.2.RELEASE] at com.sun.proxy.$Proxy60.getTodayMonitorList(Unknown Source) at com.company.riskcontroll.controller.MonitorController.getListByParam(MonitorController.java:253) [classes:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) [spring-web-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch$baymax(DispatcherServlet.java:923) [spring-webmvc-3.1.2.RELEASE.jar:3.1.2.RELEASE] ... 48 more
定位了两天,只是根据报错的原因认为是引入的api里面jar包版本冲突等问题,因此没有任何的收货。
偶然看到文章:
http://blog.csdn.net/izgnaw/article/details/18045879
提供了一个新的思路,就是在jboss中,可能已经引用了jackson-core,只不过这个里面的版本过低,造成无法提供相应的字段值,FAIL_ON_SYMBOL_HASH_OVERFLOW 这个field是在v2.4版本后才有的。
因为jboss环境不熟悉,遇到的问题是在公司环境中,所以无法容易定位,因此下载了一个jboss环境,果然搜索到了环境中有一个jar包
如下图:
因为环境的问题,周末无法去验证这个想法:先把方案写下来,周一验证:
方案1:在jboss工程deployment配置文件中排除掉java-core的jar包
实例如下:
<jboss-deployment-structure> <deployment> <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> <exclusions> <module name="org.slf4j" /> <module name="org.slf4j.impl" /> <module name="org.apache.commons.logging" /> <module name="com.fasterxml.jackson.core.jackson-core"/> <module name="org.jboss.resteasy.resteasy-jackson2-provider" /> <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" /> <module name="com.fasterxml.jackson.core.jackson-databind" /> </exclusions> </deployment> </jboss-deployment-structure>
ATTENTION:在jboss中有多个module都引用了jackson-core模块,如果不排除干净的话jar包冲突的问题还是解决不了的。在我的jboss版本中主要是下面四个module。
———————–以上是问题描述和方案——————————-
http://blog.csdn.net/izgnaw/article/details/18045879
https://docs.jboss.org/resteasy/docs/3.0.2.Final/userguide/html/json.html
https://discuss.elastic.co/t/noclassdeffounderror-could-not-initialize-class-org-elasticsearch-common-xcontent-smile-smilexcontent/36396/3
http://stackoverflow.com/questions/37353214/java-lang-nosuchfielderror-fail-on-symbol-hash-overflow-in-elasticsearch-watch
https://discuss.elastic.co/t/error-java-lang-nosuchfielderror-fail-on-symbol-hash-overflow/44759
相关文章推荐
- nested exception is java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW
- NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW问题解决
- 在启动web项目的时候出现java.lang.NoSuchFieldError: TRACE的缘由
- 遇到了问题了 java.lang.NoSuchFieldError:INSTANE
- GeoServer启动错误Error on startup, "java.lang.NoSuchFieldError KEY_CACHED_TILE_RECYCLING_ENABLED"
- Jboss 4.2 & hibernate java.lang.NoSuchFieldError: INSTANCE
- java web项目运行出现java.lang.NoSuchFieldError: deferredExpression解决方法!
- java.lang.NoSuchFieldError: INSTANCE异常问题
- elasticsearch 报出 Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_3_6
- IntelliJ Idea配置JRebel启动失败Caused by: java.lang.NoSuchFieldError: a
- myeclipse报错“java.lang.NoSuchFieldError: INSTANCE” 以及 myeclipse项目名上有感叹号
- java.lang.NoSuchFieldError: deferredExpression 错误处理
- java.lang.NoSuchFieldError: NON_BRIDGED_METHODS 错误
- maven test java.lang.NoSuchFieldError: NULL
- Hibernate java.lang.NoSuchFieldError: INSTANCE
- java.lang.NoSuchFieldError: deferredExpression异常
- java.lang.NoSuchFieldError: deferredExpression
- java.lang.NoSuchFieldError: NONE
- java.lang.NoSuchFieldError: ANY_HOST_CONFIGURATION异常原因
- java.lang.NoSuchFieldError错误 .