当mule项目转换为web应用程序时,mule ajax连接器中使用的app.home不起作用
在mule中,当我在web应用程序中使用当mule项目转换为web应用程序时,mule ajax连接器中使用的app.home不起作用,mule,mule-studio,Mule,Mule Studio,在mule中,当我在web应用程序中使用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-valu
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>
在WebContent中,我创建了一个文件夹docroot
,并在其中创建了相应的文件,我在web应用程序中使用的连接器是
<ajax:connector name="ajaxServer" serverUrl="http://0.0.0.0:9092/reservation" resourceBase="/docroot" doc:name="Ajax"/>
但这是行不通的。此错误的原因可能是什么?var${app.home}由mule standalone容器设置,因此,在webapp中运行它时,您有两个选项:
var${app.home}由mule standalone容器设置,因此,在webapp中运行它时,有两个选项:
我是这样做的: 添加了一个ContextListener扩展MuleXmlBuilderContextListener,它执行以下操作
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("/"));
initialize(context);
并使用如下根路径:
<ajax:connector name="ajaxServer" serverUrl="http://0.0.0.0:9092/reservation" resourceBase="${rootPath}WEB-INF/docroot" doc:name="Ajax"/>
现在应用程序正在运行。我是这样做的: 添加了一个ContextListener扩展MuleXmlBuilderContextListener,它执行以下操作
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("/"));
initialize(context);
并使用如下根路径:
<ajax:connector name="ajaxServer" serverUrl="http://0.0.0.0:9092/reservation" resourceBase="${rootPath}WEB-INF/docroot" doc:name="Ajax"/>
现在应用程序正在运行