我正在使用jetty-runner在服务器上运行plantuml.war。我需要为 CORS 启用标头,但我发现这样做的方式指向web.xml或override-web.xml,我认为这是我无法控制的,因为我使用的是第三方 web- jetty-runner 中的应用程序。我看不到在 jetty.xml 中进行设置的方法。Access-Control-Allow-Origin
有没有办法Access-Control-Allow-Origin
在 jetty-runner 中启用标题?
我正在使用jetty-runner在服务器上运行plantuml.war。我需要为 CORS 启用标头,但我发现这样做的方式指向web.xml或override-web.xml,我认为这是我无法控制的,因为我使用的是第三方 web- jetty-runner 中的应用程序。我看不到在 jetty.xml 中进行设置的方法。Access-Control-Allow-Origin
有没有办法Access-Control-Allow-Origin
在 jetty-runner 中启用标题?
免责声明:我得到了有关此细节的帮助(不是我的回答 100%)。我仅在 Windows 7 和带有 Java 7 的 Windows 8 下对其进行了测试。
此外jetty-runner.jar
,一需要也jetty-servlets.jar
。
添加文件override-web.xml
如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST,OPTIONS,DELETE,PUT,HEAD</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>origin, content-type, accept, authorization</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
</web-app>
然后做一个jetty-web.xml
上下文
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="war">/</Set>
<Set name="overrideDescriptor"><SystemProperty name="jetty.home" default="."/>/override-web.xml</Set>
</Configure>
运行 PlantUML 的服务器如下
java -jar jetty-runner.jar --config jetty.xml --jar jetty-servlets.jar plantuml.war jetty-web.xml