我使用VFS传输轮询一个简单的文本文件,然后将文件的文本发送到队列。这个流程工作得很好,但是在执行fault sequence时出现错误的情况下,我想把我的错误消息写到一个简单的文本文件中,但它不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="FileWriteTest"
transports="vfs"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full"
separator="******************FileWrite In Sequence Start*************"/>
</inSequence>
<outSequence/>
<faultSequence>
<payloadFactory media-type="xml">
<format>
<MessageFormat xmlns="">
<ECode>$1</ECode>
<EMsg>$2</EMsg>
<EDetail>$3</EDetail>
<EException>$4</EException>
</MessageFormat>
</format>
<args>
<arg evaluator="xml" expression="get-property('ERROR_CODE')"/>
<arg evaluator="xml" expression="get-property('ERROR_MESSAGE')"/>
<arg evaluator="xml" expression="get-property('ERROR_DETAIL')"/>
<arg evaluator="xml" expression="get-property('ERROR_EXCEPTION')"/>
</args>
</payloadFactory>
<property name="OUT_ONLY" value="true" scope="default" type="STRING"/>
<property name="ClientApiNonBlocking" scope="axis2" action="remove"/>
<send>
<endpoint>
<address uri="vfs:file:///home/omerkhalid/Documents/WSO2Test/FileWrite/Errorlog.txt"/>
</endpoint>
</send>
</faultSequence>
<endpoint>
<address uri="jms:/FileWriterResponse?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:6616&transport.jms.DestinationType=queue"/>
</endpoint>
</target>
<parameter name="transport.PollInterval">10</parameter>
<parameter name="transport.vfs.FileURI">file://home/omerkhalid/Documents/WSO2Test/FileWrite/InTest</parameter>
<parameter name="transport.vfs.MoveAfterProcess">file://home/omerkhalid/Documents/WSO2Test/FileWrite/DoneTest</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.txt</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
<parameter name="serviceType">proxy</parameter>
<description/>
</proxy>
问题区域:
问题在下面的代码区域,在这里我定义了错误序列的endpoint。它确实在该特定位置创建了一个文件,但该文件仍然为空。
<send>
<endpoint>
<address uri="vfs:file:///home/omerkhalid/Documents/WSO2Test/FileWrite/Errorlog.txt"/>
</endpoint>
</send>
例外情况:
org.apache.axis2.AxisFault: The system cannot infer the transport information from the file:///home/omerkhalid/Documents/WSO2Test/FileWrite/Errorlog.txt URL.
at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:81)
at org.apache.axis2.client.OperationClient.prepareMessageContext(OperationClient.java:288)
at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:249)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:482)
at org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:59)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:338)
at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333)
at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)
at org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:97)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
at org.apache.synapse.mediators.MediatorFaultHandler.onFault(MediatorFaultHandler.java:85)
at org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:54)
at org.apache.synapse.endpoints.AbstractEndpoint.invokeNextFaultHandler(AbstractEndpoint.java:640)
at org.apache.synapse.endpoints.AbstractEndpoint.onFault(AbstractEndpoint.java:475)
at org.apache.synapse.endpoints.AddressEndpoint.onFault(AddressEndpoint.java:43)
at org.apache.synapse.FaultHandler.handleFault(FaultHandler.java:102)
at org.apache.synapse.core.axis2.AsyncCallback.onError(AsyncCallback.java:67)
at org.apache.axis2.engine.AxisEngine$TransportNonBlockingInvocationWorker.run(AxisEngine.java:643)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
从faultSequence中更改payloadFactory中的消息:消息的根节点必须是:
并且该节点的内容将是发送到您的文件的文本值
本文向大家介绍使用Python读写文本文件及编写简单的文本编辑器,包括了使用Python读写文本文件及编写简单的文本编辑器的使用技巧和注意事项,需要的朋友参考一下 学习raw_input和argv是学习读取文件的前提,你可能不能完全理解这个练习,所以认真学习并检查。如果不认真的话,很容易删除一些有用的文件。 这个练习包含两个文件,一个是运行文件ex15.py,一个是ex15_sample.txt。
本文向大家介绍如何用python在Selenium中编写文本文件?,包括了如何用python在Selenium中编写文本文件?的使用技巧和注意事项,需要的朋友参考一下 通过首先创建一个txt文件并在其中包含内容,我们可以使用python在Selenium中编写文本文件。 首先,我们需要以写模式打开文件,并以文本文件的位置路径作为参数。有多种读取方法可以执行这些操作。 write()–将字符串写在一
我是Selenium的新手,需要能够使用属性和文本对以下元素进行xpath。 我正在使用 但我还需要它带有属性,以便将其缩小到单个元素。
本文向大家介绍如何使用R编写文本并将其输出为文本文件?,包括了如何使用R编写文本并将其输出为文本文件?的使用技巧和注意事项,需要的朋友参考一下 我们可以使用writeLines和fileConn函数来做到这一点。 示例 我们可以这样做,并按照以下方式在R中查看这些文件- 您可以在系统的文件文件夹中找到这些文件。
问题内容: 假设我有以下代码: 我要做的就是在文本文件中写一些东西,在我的例子中是“出于某种原因在这里写一些文本”。然后从文件中读取数据,最后从“有原因的一些文本”中的“有原因的一些文本”中更改文件中的文本。我运行了代码,但是所有发生的事情是在文件“某些原因在这里写”中。 我试图找出代码中可能出什么问题,但不幸的是,这是徒劳的。我非常感谢任何建议或重写。 问题答案: 将您的代码更改为: 问题是您要
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd“> 这里context1.xml是由context2.xml编写