JBoss7: нарушение ограничений загрузчика с помощью ReastEasy и httpclient с пользовательским HttpRequestInterceptorJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JBoss7: нарушение ограничений загрузчика с помощью ReastEasy и httpclient с пользовательским HttpRequestInterceptor

Сообщение Anonymous »

Я использую клиентскую платформу RestEasy в компоненте @Named @ViewScoped с JBoss-7.1.1-Final для получения данных из службы REST с помощью специального HttpRequestInterceptor:

RegisterBuiltin.register(ResteasyProviderFactory.getInstance());

DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.addRequestInterceptor(new PreemptiveAuthInterceptor("test","test"), 0);

ClientExecutor clientExecutor = new ApacheHttpClient4Executor(httpClient); // область:

Изображение
< /p>

Нет, я получаю следующее исключение:

java.lang.LinkageError: loader constraint violation: when resolving method
"org.jboss.resteasy.client.core.executors.ApacheHttpClient4Executor.
(Lorg/apache/http/client/HttpClient;)V"
the class loader (instance of org/jboss/modules/ModuleClassLoader)
of the current class, my/TestBean, and
the class loader (instance of org/jboss/modules/ModuleClassLoader)
for resolved class,
org/jboss/resteasy/client/core/executors/ApacheHttpClient4Executor,
have different Class objects for the type org/apache/http/client/HttpClient
used in the signature my.TestBean.init(TestBean.java:65)


Обновление Чтобы воспроизвести это, вам не нужны интерфейсы REST, ошибка возникает при создании экземпляра ApacheHttpClient4Executor, но вам может понадобиться пользовательский PreemptiveAuthInterceptor:

public class PreemptiveAuthInterceptor implements HttpRequestInterceptor
{
private String username;
private String password;

public PreemptiveAuthInterceptor(String username, String password)
{
this.username=username;
this.password=password;
}

@Override
public void process(org.apache.http.HttpRequest request, HttpContext context) throws HttpException, IOException
{
AuthState authState = (AuthState) context.getAttribute(ClientContext.TARGET_AUTH_STATE);

authState.setAuthScope(org.apache.http.auth.AuthScope.ANY);
authState.setCredentials(new UsernamePasswordCredentials(username,password));
authState.setAuthScheme(new BasicScheme());

}
}


Подробнее здесь: https://stackoverflow.com/questions/105 ... -custom-ht
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»