2014-12-09 3 views
0

Wildfly에서 HttpComponents 4.3.6을 사용하여 앱을 실행할 때 다음 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?java.lang.NoSuchFieldError : Apache HttpComonents 및 Wildfly의 인스턴스

Caused by: java.lang.NoSuchFieldError: INSTANCE 
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52) [httpcore-4.3.3.jar:4.3.3] 
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56) [httpcore-4.3.3.jar:4.3.3] 
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46) [httpcore-4.3.3.jar:4.3.3] 
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:72) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:84) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:59) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:494) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:149) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:138) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:114) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:726) [httpclient-4.3.6.jar:4.3.6] 
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58) [httpclient-4.3.6.jar:4.3.6] 

답변

1

제목에 대한 모든 게시물에 따르면 다른 버전의 HttpComponents간에 충돌이 발생했기 때문입니다. 필자의 경우에는 내 앱으로 가져온 버전과 Wildfly에서 제공 한 버전 사이에 충돌이있었습니다.

<jboss-deployment-structure> 
<deployment> 
    <exclusions> 
     <module name="org.apache.httpcomponents" /> 
    </exclusions> 
</deployment> 

이전로드에서 제이보스 방지 할 수 있습니다 :

은 다음과라는 파일 WEB-INF/JBoss에 배포-structure.xml이 필요합니다, 그것을 해결하려면 새로운 버전을 방해합니다.

자세한 내용은 https://docs.jboss.org/author/display/WFLY8/Class+Loading+in+WildFly을 참조하십시오.