나는 이것을 이해하려고 애 쓰면서 꽤 오래 동안 보냈다. 나는 사용자 이름과 암호를받는 서비스를 작성하는 중입니다. 그런 다음 프로세서를 사용하여 메시지의 출력 부분에 반환되는 인증 토큰을 생성합니다. JSON 형식의 매개 변수를 허용하고 형식 변환이 올바르게 작동하도록하려고합니다. 나는 아래있는자가 포함 된 단위 테스트에 문제를 감소했습니다Apache Camel에서 JSON 마샬링의 간단한 예제가 작동하지 않는 이유는 무엇입니까?
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.dataformat.JsonDataFormat;
import org.apache.camel.model.dataformat.JsonLibrary;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
import com.thoughtworks.xstream.annotations.XStreamAlias;
public class BasicJsonMarshallingTest extends CamelTestSupport {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
final Processor simpleProcessor = new Processor() {
@Override public void process(Exchange exchange) throws Exception {
SimpleBean bean = exchange.getIn().getBody(SimpleBean.class);
if(bean == null){
return;
}
exchange.getOut().setBody("a=" + bean.getA() + " b=" + bean.getB());
}
};
return new RouteBuilder() {
@Override public void configure() throws Exception {
JsonDataFormat jsonFormat = new JsonDataFormat(JsonLibrary.XStream);
jsonFormat.setUnmarshalType(SimpleBean.class);
from("direct:service").unmarshal(jsonFormat).process(simpleProcessor);
}
};
}
@Test
public void testSuccessfulAuthentication(){
Exchange lAuthRequest = createExchangeWithBody("{\"simple\":{\"a\":\"v1\",\"b\":\"v2\"}}");
template.send("direct:service", lAuthRequest);
assertEquals("a=v1 b=v2", lAuthRequest.getOut().getBody());
}
@XStreamAlias("simple")
public static final class SimpleBean {
private String a;
private String b;
public void setA(String a) {
this.a = a;
}
public String getA() {
return a;
}
public void setB(String b) {
this.b = b;
}
public String getB() {
return b;
}
}
}
나는이 테스트를 실행할 때, 나는 콘솔에서이 예외를 얻을 :
com.thoughtworks.xstream.mapper.CannotResolveClassException: simple
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)[xstream-1.4.1.jar:]
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)[xstream-1.4.1.jar:]
<snip>
는 어떻게 든이 문제를 접근 오전 ? 도와주세요!