Membrane SOAP Monitor HowTo
- HowTo monitor a JAX-WS Client
- How to use Membrane SOAP Monitor as SOAP Proxy in a Firewall?
Suppose you have some internal Web Services and you want to expose those services to the outside world. And also suppose you do not want to deploy the applications offering the Web Services in your DMZ. Instead you can place Membrane into the DMZ and for each service or server you want to expose you can create a Membrane routing rule. Based on the URL of a service Membrane can forward requests to the right internal service. Of course you can start Membrane as a system service or cron job. See the tutorial Membrane Router as SOAP Firewall.
- How to load a default configuration automatically?
Save your configuration in a file named .membrane.xml and put this file inside your home directory. The next time you start up membrane it will load this configuration automatically.
- How to save captured messages automatically?
ExchangeStoreInterceptor is responsible for saving captured messages. By default Membrane Monitor uses only MemoryExchangeStore to keep messages in memory for later use. To save messages in file system one needs to add an other instance of ExchangeStoreInterceptor and equip it with a properly configured FileExchangeStore. Configuration directory of the Membrane contains membrane-beans.xml file, which must be changed accordingly. The following XML document gives an example how membrane-beans.xml should be changed.
<?xml version="1.0" encoding="UTF-8"?> <spring:beans xmlns="http://membrane-soa.org/router/beans/1/" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://membrane-soa.org/router/beans/1/ http:/www.predic8.com/schema/router/conf/router-conf.xsd"> <router hotDeploy="false" exchangeStore="exchangeStore" /> <memoryExchangeStore id="exchangeStore" /> <transport> <ruleMatching /> <dispatching /> <exchangeStore name="exchangeStore" /> <userFeature /> <reverseProxying /> <httpClient /> </transport> <spring:bean name="storeInterceptor" class="com.predic8.membrane.core.interceptor.ExchangeStoreInterceptor"> <spring:property name="exchangeStore"> <spring:bean class="com.predic8.membrane.core.exchangestore.FileExchangeStore"> <spring:property name="dir" value="C:\temp" /> </spring:bean> </spring:property> </spring:bean> <spring:bean id="JSONBeautifier" class="com.predic8.membrane.core.beautifier.JSONBeautifier" init-method="configure"> <spring:property name="indentOutput" value="true"/> <spring:property name="allowedUnquotedFieldNames" value="true"/> <spring:property name="quoteFieldNames" value="false"/> <spring:property name="failOnUnknownProperties" value="false"/> </spring:bean> </spring:beans>
This procedure is valid for Membrane-Router, which uses ForgetfulExchangeStore by default.