Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jetty透明代理始终返回403禁止_Java_Maven_Proxy_Jetty_Transparentproxy - Fatal编程技术网

Java jetty透明代理始终返回403禁止

Java jetty透明代理始终返回403禁止,java,maven,proxy,jetty,transparentproxy,Java,Maven,Proxy,Jetty,Transparentproxy,我正在尝试使用jetty提供的透明代理 这是我的web.xml <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_9" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.c

我正在尝试使用jetty提供的透明代理

这是我的web.xml

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="WebApp_9"
     version="2.4"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Archetype Created Web Application</display-name>

<servlet>
    <servlet-name>googleProxy</servlet-name>
    <servlet-class>org.eclipse.jetty.servlets.ProxyServlet$Transparent</servlet-class>
    <init-param>
        <param-name>ProxyTo</param-name>
        <param-value>http://www.google.com</param-value>
    </init-param>
    <init-param>
        <param-name>Prefix</param-name>
        <param-value>/google</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>googleProxy</servlet-name>
    <url-pattern>/google/*</url-pattern>
</servlet-mapping>
为此:

http://www.google.com/search?q=hello
但当我在浏览器中尝试该url时,我总是得到以下结果:

HTTP ERROR: 403

FORBIDDEN
RequestURI=/JettyProxySample/google/search

Powered by Jetty://

有什么想法吗?

只是想在这里给出一个答案,不要使用已有多年历史的里程碑版本

  • 7.6.7.v20120910用于码头7
  • 8.1.7.v20120910用于码头8

我知道很多人在这两个版本中都成功地使用了代理servlet,只是从codehaus到eclipse的最初迁移中没有这样做……当时有大量的代码流失,所以如果这对您来说不正常,我不会感到惊讶。

阅读源代码有帮助。:)

问题是,您没有将代理servlet设置在web的根目录下 服务器,但在应用程序内部,因此前缀参数需要 包含整个前缀,包含web应用程序的上下文名称

前缀/YOUR\u WEB\u APP\u CONTEXT/google


为什么要使用透明代理。IP地址是什么?@Roman C我只是想知道如何使用它。对不起,你说的“IP地址”是什么意思?对于这个问题,你需要阅读DoCu。对于这样一个简单的用例,我会考虑使用S笑Y的HTTP代理servlet:
http://www.google.com/search?q=hello
HTTP ERROR: 403

FORBIDDEN
RequestURI=/JettyProxySample/google/search

Powered by Jetty://