次のコードは、Camel ルートをセットアップして、HTTP POST を受信し、SMPP 経由で SMS メッセージとして送信しようとします。
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
public class SMSA {
public static void main(String[] args) throws Exception {
CamelContext context = new DefaultCamelContext();
RouteBuilder builder = new RouteBuilder() {
@Override
public void configure() throws Exception {
errorHandler(loggingErrorHandler());
from("jetty:http://localhost:9993").
setHeader("CamelSmppDestAddr", header("deliveryAddress")).
to("smpp://smppclient1@localhost:2775?password=password&sourceAddr=1234")
;
}
};
builder.addRoutesToCamelContext(context);
context.start();
}
}
これは最初は機能しているように見えますが (SMS が送信されます)、メッセージはすべて空です。
次のコマンドを使用してテストします。
curl -X POST -d "Hello World!" --header "Content-Type:text/plain" "http://localhost:9993?deliveryAddress=1818"
カスタムプロセッサを追加して呼び出すと
exchange.getIn().getBody(String.class)
(http://camel.apache.org/jetty.htmlの例のように)、投稿されたメッセージを見ることができます。