[SPRING] WSO2 ESB 4.6.0의 Spring Mediator에 대한 실제 예제
SPRINGWSO2 ESB 4.6.0의 Spring Mediator에 대한 실제 예제
안녕하세요, WSO2 ESB 4.6.0의 Spring Mediator에서이 튜토리얼을 사용하고 있습니다.
오류가 다음과 같이 표시됩니다.
ERROR - SpringMediator Cannot look up Spring configuration conf/sample/resources/spring/springsample.xml
ERROR - SpringMediatorCannot reference application context with key : conf/sample/resources/spring/springsample.xml
이 문제를 해결하는 방법을 설명해 주시겠습니까?
해결법
-
==============================
1.나는 이것을 아래와 같이해야한다.
나는 이것을 아래와 같이해야한다.
클래스는 AbstractMediator를 확장하고 다음과 같이 mediate () 메서드를 재정의해야합니다.
package com.test.spring.mediator.workingexampleonspringmediator; import org.apache.synapse.MessageContext; import org.apache.synapse.mediators.AbstractMediator; public class HelloWorld extends AbstractMediator{ private String message; public void setMessage(String message){ this.message = message; } public boolean mediate(MessageContext arg0) { System.out.println("HELLO "+message); return true; } }
그런 다음 항아리를 [ESBHOME] / repository / components / lib 폴더에 놓습니다.
매개 메소드에서 HELLO 'arg'와 같은 인수를 사용하여 메시지를 인쇄합니다.
그리고 다음 파일을 레지스트리 (/_system/config/repository/spring/springtest.xml)에 추가했습니다.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="springtest" class="com.test.spring.mediator.workingexampleonspringmediator.HelloWorld" singleton="false"> <property name="message"><value>ISURU</value></property> </bean> </beans>
내 프록시는 다음과 같습니다.
<proxy xmlns="http://ws.apache.org/ns/synapse" name="testSpring" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> <target> <inSequence> <log level="full"> <property name="START" value="__________________________"/> </log> <spring:spring xmlns:spring="http://ws.apache.org/ns/synapse" bean="springtest" key="conf:/repository/spring/springtest.xml"/> <log level="full"> <property name="END" value="______________________"/> </log> </inSequence> </target> <description></description> </proxy>
프록시에서 bean = [springtest.xml의 bean id]와 class = 클래스의 정규화 된 이름을 볼 수 있습니다.
내 ESB 터미널에서 springtest.xml에 주어진 속성 값을 다음과 같이 넣었습니다.
[2013-11-07 17:38:30,654] INFO - LogMediator To: /services/testSpring.testSpringHttpSoap12Endpoint, WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:bcae82e9-4027-43c5-bd7a-cbfa885aaf33, Direction: request, START = __________________________, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body/></soapenv:Envelope> HELLO ISURU [2013-11-07 17:38:30,692] INFO - LogMediator To: /services/testSpring.testSpringHttpSoap12Endpoint, WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:bcae82e9-4027-43c5-bd7a-cbfa885aaf33, Direction: request, END = ______________________, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body/></soapenv:Envelope>
jar를 repository / components / lib에 넣은 후에 ESB를 다시 시작해야합니다
-
==============================
2.이들은 Isuru가 위에 설명 된대로 봄 중재자를위한 단계입니다
이들은 Isuru가 위에 설명 된대로 봄 중재자를위한 단계입니다
거기에, Bean을 "springtest"(xml 파일 내의 mediator 클래스에 대해 정의 된 bean id)로 추가하십시오.
4 단계에 따라 저장된 구성 레지스트리 파일의 위치로 키를 선택하십시오.
예 : 해당 springtest.xml 파일을 "_system / config / repository /"경로에 저장 한 경우 "/_system/config/repository/springtest.xml"로 키를 선택하십시오.
노트 :
-
==============================
3.이는 esb가 경로 repository / conf / sample / resources에서 springsample.xml 파일을 찾았 기 때문입니다
이는 esb가 경로 repository / conf / sample / resources에서 springsample.xml 파일을 찾았 기 때문입니다
<parameter name="root">file:repository/conf/sample/resources/</parameter>
그러나 springsample.xml 파일 위치는 repository / samples / resources /에 있습니다. 따라서 다음과 같이 수정해야합니다.
<parameter name="root">file:repository/samples/resources/</parameter>
설명서에서 구성이 올바르지 않습니다. 설명서에서 언급 한 것처럼 wso2esb-samples-sn 470 명령으로 esb를 시작하면 esb는 repository / samples / synapse_sample_470.xml에 파일을로드합니다.이 파일의 위의 매개 변수 가 올바르게 구성되었습니다.
희망이 귀하의 문제를 해결할 것입니다 :)
업데이트 :
귀하의 의견에 따르면, 직접 샘플 봄 예제를 사용하여, 이것은 액세스하려고하는 파일의 권한으로 인해 발생하거나 파일 경로 오류 때문일 수 있습니다. 따라서 절대 파일 URL을 사용해보십시오.
-
==============================
4.메시지를 보낼 때 유일한 오류 메시지는이 메시지입니다.
메시지를 보낼 때 유일한 오류 메시지는이 메시지입니다.
ERROR - SpringMediator No bean named 'springtest' is defined
그래서 그것은 설정 파일이 발견되었음을 의미합니다. 하지만 내부 콩의 인스턴스에 대해, 나는 어떤 명백한 오류를 볼 수 없습니다. jar 파일은 components / lib에 있으며 dropins 폴더에서도 jar 파일을 볼 수 있습니다.
:/
from https://stackoverflow.com/questions/19762090/working-example-on-spring-mediator-in-wso2-esb-4-6-0 by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 데이터 기능을 사용하여 데이터를 바인딩 할 수 없음 (0) | 2019.05.01 |
---|---|
[SPRING] 동작을 형성하기위한 컨텍스트 경로를 추가하는 Spring MVC (0) | 2019.05.01 |
[SPRING] NoSuchMethodError 오류가 세션 팩토리를 생성합니다. (0) | 2019.05.01 |
[SPRING] Spring @Value ( "$ {}")는 종종 null입니다. (0) | 2019.05.01 |
[SPRING] Spring의 요청 매개 변수에 특수 문자를 보내는 방법 (0) | 2019.05.01 |