2014-10-28 2 views
1

Я разрабатываю приложение HTML5, которое должно получать некоторые значения из унаследованных веб-сервисов (Jax-Ws), поэтому я использую jQuery.soap для запроса этих веб-сервисов для получения ответов. Я попробовал правильность моих запросов с помощью SOAP UI, и они работают правильно.Как включить CORS в jBoss

От моего клиента HTML5 я не могу получать ответы SOAP с сервера, потому что в ответе нет заголовка Allow-Control-Allow-Origin, установленного на *. Таким образом, происхождение запроса распознается как недопустимое, а ответ сервера - ответ об ошибке.

сообщение ошибки, отладки мой проект HTML5 с Firebug + Firefox, является:

Locked запрос кросс- происхождения: критерий в начале координат не позволяет чтение удаленного ресурса. Вы можете решить проблему, переместив ресурс в тот же домен или активизируя CORS.

Как включить CORS в jBoss?

+0

Вы должны использовать сервлет фильтр, как это: http://software.dzhuvinov.com/cors-filter.html – mccannf

ответ

2

Чтобы устранить проблему, вам необходимо иметь дело с устаревшими веб-сервисами. Как сказано выше, вам нужно добавить фильтр CORS в web.xml.

Вы можете использовать раствор из thetransactioncompany:

web.xml:

<filter> 
    <filter-name>CORS</filter-name> 
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>CORS</filter-name> 
    <url-pattern>*</url-pattern> 
</filter-mapping> 

Maven:

<dependency> 
    <groupId>com.thetransactioncompany</groupId> 
    <artifactId>cors-filter</artifactId> 
    <version>2.5</version> 
</dependency> 

Если вы используете Apache Tomcat можно использовать встроенный в CorsFilter:

web.xml:

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

pom.xml:

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-catalina</artifactId> 
    <version>7.0.42</version> 
    <scope>provided</scope> 
</dependency> 
+0

Спасибо это решает хлопот создать фильтр и проверить его. Работает безупречно. – cabaji99

Смежные вопросы