svcutil не создает клиентский класс как сериализуемый - PullRequest
0 голосов
/ 29 мая 2020

Привет сообществу

На самом деле мы столкнулись со странной проблемой.

У нас есть сервер Tomcat, который публикует WebService

Вот wsdl:

<?xml version='1.0' encoding='UTF-8'?>
<!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.3.2 git-revision#3d0bba4. -->
<!-- Generated by JAX-WS RI (https://github.com/eclipse-ee4j/metro-jax-ws). RI's version is JAX-WS RI 2.3.2 git-revision#3d0bba4. -->
<definitions name="FBroker" targetNamespace="http://ws.myserver.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.myserver.com/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <types>
        <xsd:schema>
            <xsd:import namespace="http://ws.myserver.com/" schemaLocation="http://localhost:9090/WS/FBroker?xsd=1"/>
        </xsd:schema>
    </types>
    <message name="startSession">
        <part element="tns:startSession" name="parameters"/>
    </message>
    <message name="startSessionResponse">
        <part element="tns:startSessionResponse" name="parameters"/>
    </message>
    <portType name="FBroker">
        <operation name="startSession">
            <input message="tns:startSession" wsam:Action="http://ws.myserver.com/FBroker/startSessionRequest"/>
            <output message="tns:startSessionResponse" wsam:Action="http://ws.myserver.com/FBroker/startSessionResponse"/>
        </operation>
    </portType>
    <binding name="FBrokerPortBinding" type="tns:FBroker">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="startSession">
            <soap:operation soapAction=""/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="FBrokerService">
        <port binding="tns:FBrokerPortBinding" name="FBrokerPort">
            <soap:address location="http://localhost:9090/WS/FBroker"/>
        </port>
    </service>
</definitions>

Но при использовании svcutil (или инструментов в Visual Studio (2018 2012 2017 и т. Д.) Сериализация подходит для FBrokerService, но невозможно получить сериализацию в FBrokerServiceClient, который также создается. Неважно, если мы поставим / s или / serialization и другие параметры.

И, конечно же, когда мы компилируем, мы получаем ошибку в сборке, не отмеченной как сериализуемая.

Если кто-нибудь из вас имеет представление об этом поведении?

Большое спасибо

...