Camelのサンプルで、よく"direct"のキーワードが出てきますが、その簡単な使い方。Servletで受信したメッセージをCamelのdirectコンポーネントを介してCamelに送るサンプルです。

HelloWorldサーブレット

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request,
     HttpServletResponse response)
    throws ServletException,IOException {
    response.setContentType("text/html;charset=Shift_JIS");
    PrintWriter out=response.getWriter();
    
   
    WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
    CamelContext camelCtx = (CamelContext) ctx.getBean("myCamel");       //myCamelコンテキストを取得
    
    ProducerTemplate template = camelCtx.createProducerTemplate();
    template.sendBody("direct:inPort", "This is a string");                         //inPortにメッセージ送信
     
    out.println("<html><head>");
    out.println("<title>Hello, World!!</title>");
    out.println("</head><body>");
    out.println("<p>Hello,World!!</p>");
    out.println("</body></html>");
  }
}

applicationContext.xmlファイル

	<camelContext id="myCamel" xmlns="http://camel.apache.org/schema/spring" autoStartup="true">     
		<route id="directテスト">
		 	<from uri="direct:inPort" />
			<to uri="SomeProcess" />
			<log logName="LOG_1" loggingLevel="INFO" message="body=${body}" />
		</route>
	</camelContext>
        <bean id="SomeProcess" class="sample.MyProcess" />