Servlets Servlet中的重定向导致错误加载远程资源

Servlets Servlet中的重定向导致错误加载远程资源,servlets,tomcat7,Servlets,Tomcat7,我正在开发一个JavaEE应用程序,使用web服务与远程服务器通信 为了避免跨源资源共享CORS问题,我使用桥接Servlet重定向和过滤请求 然而,当加载一些远程页面时,位于这个远程服务器上的CSS和Javascript文件将得到它们的绝对路径转换,并且它们的根文件夹将成为本地Web应用程序的根 这是web应用程序调用的远程网页的HTML代码块: <!DOCTYPE HTML> <html dir="ltr" lang="en">

我正在开发一个JavaEE应用程序,使用web服务与远程服务器通信

为了避免跨源资源共享CORS问题,我使用桥接Servlet重定向和过滤请求

然而,当加载一些远程页面时,位于这个远程服务器上的CSS和Javascript文件将得到它们的绝对路径转换,并且它们的根文件夹将成为本地Web应用程序的根

这是web应用程序调用的远程网页的HTML代码块:

<!DOCTYPE HTML>
<html dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en">
<script type="text/javascript" src="/analytics/res/b_mozilla/browserdom.js">
</script>

请共享web.xml文件您是如何请求此html文件的?我的意思是你能在请求完成的地方添加代码部分吗?@erhun请求是通过JSF托管Bean中的一个方法完成的。此方法通过从WSDL生成的一系列函数调用远程web服务,WSDL反过来返回在调用托管Bean方法的页面中插入和执行的HTML代码。我已经在这篇文章中提供了关于我的源代码的所有细节,谢谢你的帮助。看起来你需要一些URL重写。为什么不将wep应用程序隐藏在一个反向代理(如Apache HTTP server或nginx)后面,该代理可以为您执行所有这些重写?@Sergeballesta他在哪里执行url重写?@ML\u TNit看起来您使用的是Oracle框架,实际上我无法跟踪您的请求和响应。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <servlet-name>ObieeBridge</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>ObieeBridge</servlet-name>
        <servlet-class>ObieeBridge</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
        <init-param>
            <param-name>cors.allowed.origins</param-name>
            <param-value>*</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.methods</param-name>
            <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.headers</param-name>
            <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
        </init-param>
        <init-param>
            <param-name>cors.exposed.headers</param-name>
            <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
        </init-param>
        <init-param>
            <param-name>cors.support.credentials</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>cors.preflight.maxage</param-name>
            <param-value>10</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet-mapping>
        <servlet-name>ObieeBridge</servlet-name>
        <url-pattern>/ObieeBridge</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>