1
를 사용하여 요청의 문자열 매개 변수에 CDATA 추가는 모든 작업의하지만 생성 된 요청은, 그는 XML이 들어 나는 문자열 매개 변수 (MGRequest)가 CXF</p> <p>요청에 ganerated JAX-WS 클라이언트가있는 경우에만 JAX-WS
<S:Body>
<ns5:MGRequest><![CDATA[<mytag>hello</mytag>]]></ns5:MGRequest>
</S:Body>
(I 서버를 제어 할 수 있기 때문에 ...)
: I과 같은 신체를 생성해야<S:Body>
<ns5:MGRequest><mytag>hello</mytag></ns5:MGRequest>
</S:Body>
: 이런
클라이언트는 표준 JAX-WS 같다 :
@WebService(name = "ServiceSoap")
@XmlSeeAlso({ ObjectFactory.class})
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface ServiceSoap {
@WebMethod(operationName = "ProcessMessage")
@WebResult(name = "MGResponse")
public String processMessage(
@WebParam(partName = "input", name = "MGRequest") String input);
}
그리고 난 같은 전화 :
Service client = new Service(url);
client.setHandlerResolver(HandlerFactory.build(new LoggerHandler()));
ServiceSoap service = client.getServiceSoap();
String msgToSend = JaxbUtil.jaxbObjToString(xmlObj, false);
String response = service.processMessage(msgToSend);
내가 @WebParam
전에 @XmlJavaTypeAdapter(CDataAdapter.class)
를 추가 시도했지만 결과가 있었다 :
<S:Body>
<ns5:MGRequest><![CDATA[<mytag>hello</mytag>]]></ns5:MGRequest>
</S:Body>
여기서 CDataAdapter :
public class CDataAdapter extends XmlAdapter<String, String> {
@Override
public String marshal(String v) throws Exception {
return "<![CDATA[" + v + "]]>";
}
@Override
public String unmarshal(String v) throws Exception {
return v;
}
}
아카이브하는 방법을 알려주세요. 감사
작업 밤 후
위의 해결 방법을 사용하려면 "message.saveChanges();"를 추가해야합니다. 메시지 메시지 기능을 handleMessage. https://www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/를 참조하십시오. –