我已使独立WebService
与apache camel cxf
合作。它在9003
和9004
端口上侦听,然后使用这样的路由:
<route>
<from uri="cxf:bean:queueManagerEndpoint" />
<to uri="direct:callAddToqueueMethod" />
</route>
正在处理WebService
来电。
应用程序运行:
org.apache.camel.spring.Main main = new org.apache.camel.spring.Main();
instance = main;
main.enableHangupSupport();
System.out.println("Starting camel...");
main.run(args);
我想添加一些统计页面,我可以在其中显示拨打了多少电话以及它们的外观。 在camel docummentation中获得此权限的唯一方法是:
web.xml
:
<web-app>
<servlet>
<servlet-name>CamelServlet</servlet-name>
<display-name>Camel Http Transport Servlet</display-name>
<servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CamelServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
和RouteBuilder
from("servlet:hello?matchOnUriPrefix=true").process(new Processor() {
public void process(Exchange exchange) throws Exception {
String contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class);
String path = exchange.getIn().getHeader(Exchange.HTTP_URI, String.class);
path = path.substring(path.lastIndexOf("/"));
assertEquals("Get a wrong content type", CONTENT_TYPE, contentType);
// assert camel http header
String charsetEncoding = exchange.getIn().getHeader(Exchange.HTTP_CHARACTER_ENCODING, String.class);
assertEquals("Get a wrong charset name from the message heaer", "UTF-8", charsetEncoding);
// assert exchange charset
assertEquals("Get a wrong charset naem from the exchange property", "UTF-8", exchange.getProperty(Exchange.CHARSET_NAME));
exchange.getOut().setHeader(Exchange.CONTENT_TYPE, contentType + "; charset=UTF-8");
exchange.getOut().setHeader("PATH", path);
exchange.getOut().setBody("<b>Hello World</b>");
}
});
我相信它会完成这项工作,但是我不希望用html
构建StringBuilder
页面是否可以将带有jsp
的{{1}}页面传递给data template
?
答案 0 :(得分:1)
您可以使用freemarker,一个基于Java的模板引擎,根据模板和更改数据生成文本输出。 此模板文件类似于jsp,您可以在其中定义文本的格式,并可以使用bean属性作为该模板中动态数据的占位符。
涉及以下组件