GET
メソッドを使用してURL
に接続する内部サービス(さらにI.S.)を使用するWebサービス(Jax-WS)があります。 I.S.特定のURLに接続し、応答を取得します。返されるデータ(xml形式)は、渡されるパラメーターによって異なる場合があります。 ここに重要なポイントが1つあります!差異は、返されたxmlの構造の違いを意味します。つまり、1つのxmlを取得したパラメータセットと、別のxml(構造が異なる)を取得する別のパラメータセットがあります。私の主な目標は、私のWebサービスを呼び出すクライアントにこの応答を再送信することです(別のジョブが実行されます)。ここでは私のWebサービスは曖昧さとして働いています。 JaxBを使うことができないとすれば、xml構造化された別のデータが得られます(何も共通していません)。 私の質問はどのように解決できますか?どのように私はクライアントに私に来たすべてを再送することはできますか?それをアンマーシャリングしないで。ストリームでそれを行うことは可能ですか?私はInputStream
またはString
XML文書を返す
@Slf4j
@WebService(name = CCServiceWS.WS_NAME,
serviceName = CCWS.WS_SERVICE_NAME,
portName = CCWS.WS_PORT_NAME,
targetNamespace = CCWS.WS_NAMESPACE)
@Logged
@Component
public class CCWSImpl implements CCServiceWS {
@Autowired
CCService ccService;
@Override
public Object reserve(@XmlElement(required = true) @NotNull String m1,
@XmlElement(required = true) @NotNull String m2,
@XmlElement(required = true) @NotNull Integer amount) {
return ccService.reserve(m1, m2, amount);
}
}
マイ内部サービス
@Slf4j
@Component
public class CCService {
@Override
public Object reserve(@NotNull String m1, @NotNull String m2, @NotNull Integer amount) {
URL url = new URL("http://example.com?a=5&v=56");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
inputStream = connection.getInputStream();
// Here I get input stream
}
}