在mule中,当我使用web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID">
<!--Mule configuration (Mule format)-->
<context-param>
<param-name>org.mule.config</param-name>
<param-value>flight-config.xml</param-value>
</context-param>
<listener>
<listener-class>
org.mule.config.builders.MuleXmlBuilderContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>muleServlet</servlet-name>
<servlet-class>org.mule.transport.servlet.MuleReceiverServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<!--Mule configuration ends-->
</web-app>
在mule申请中
<ajax:connector name="ajaxServer" serverUrl="http://0.0.0.0:9092/reservation" resourceBase="${app.home}/docroot" doc:name="Ajax"/>
以上连接器正在运行,但在Web应用程序中显示错误
HTTP ERROR 404
Problem accessing /reservation/. Reason:
NOT_FOUND
--------------------------------------------------------------------------------
Powered by Jetty://
在WebContent中,我创建了一个文件夹docroot
并相应地创建了文件夹,我在Web应用程序中使用的连接器是
<ajax:connector name="ajaxServer" serverUrl="http://0.0.0.0:9092/reservation" resourceBase="/docroot" doc:name="Ajax"/>
但这不起作用。可能是造成此错误的原因是什么?
答案 0 :(得分:2)
我是这样做的:
添加了一个ContextListener,扩展了MuleXmlBuilderContextListener,它执行以下操作
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("/"));
initialize(context);
并像这样使用了这个rootPath:
<ajax:connector name="ajaxServer" serverUrl="http://0.0.0.0:9092/reservation" resourceBase="${rootPath}WEB-INF/docroot" doc:name="Ajax"/>
现在应用程序正在运行。
答案 1 :(得分:1)
var $ {app.home}是由mule独立容器设置的,因此当你在webapp中嵌入它时,你有两个选择: