문제

Jax-WS를 사용하여 Java로 설정 한 웹 서비스를 소비하려고 할 때 Delphi 2007에 문제가 있습니다. 웹 서비스는 다른 Java 프로그램과 C# / ASP.NET 2.0 웹 사이트에서 잘 소비 될 수 있습니다. 그러나 Delphi 2007의 WSDL 수입 업체 (17-17-2007 패치)를 사용하여 동일한 서비스에 액세스하려고 할 때 JAX-WS 웹 서비스는 내가 전달한 매개 변수를 인식하지 못하고 무효화합니다.

나는 Delphi가 통과하는 SOAP 메시지를 확인하고 다른 사람들과 비교했으며 그것들은 거의 동일합니다 (일부 무시할 수있는 네임 스페이스 DEC와 .NET ONE의 많은보기 상태를 제외하고!).

나는 또한 웹 주위에있었습니다 (가장 유용한 링크는 Bob 's 박사였습니다. http://www.bobswart.nl/weblog/blog.aspx?rootid=5:798)하지만 기쁨은 없습니다.

아무도 전에 이것을 발견 한 적이 있습니까?

티아.


사가는 계속됩니다!

HTTPRIO 객체와 함께 작동하기 위해 시도하고 작동하는 후에 나는 결국 포기하고 HTTP를 통해 직선 XML 전송을 시도했습니다. 불합격.

좋아, 그래서 나는 C#에 간단한 테스터를 만들어 그것을 시도했다. 문제가 없습니다.

Fiddler를 사용하여 뒤로 전송되고 앞으로 전송되는 것을 보았습니다. 유일한 차이점은 네임 스페이스에있는 것 같습니다. XML 보내기의 네임 스페이스를 델파이로 변경했습니다.

이것은 wsdlimporter에 의해 생성되는 원래 XML의 샘플입니다.

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <version xmlns="http://path.to.service.com/">
            <input>test</input>
        </version>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

그리고 여기에 실제로 작동하는 것이 있습니다.

<?xml version="1.0"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <ns2:version xmlns:ns2="http://path.to.service.com/">
            <input>test</input>
        </ns2:version>
    </S:Body>
</S:Envelope>

그래서 이제 이것을 알았으므로 WSDLIMPORTER 코드의 네임 스페이스 값을 변경하는 방법은 무엇입니까? Httprio 속성에서 분명한 것을 볼 수 없습니다.

티아

도움이 되었습니까?

해결책

ha ha it lives !!!

기본적으로 나는 추천을 꺼내야했다

InvRegistry.RegisterInvokeOptions(TypeInfo(ActivityService), ioDocument);

Sec. 5 인코딩. 네임 스페이스는 필요에 따라 생성되며 매개 변수는 Java 웹 서비스로 전달됩니다.

맞아요, 맥주가 필요합니다. 맥주가 많이 있습니다 :)

다른 팁

WSDL 에이 줄을 주어야합니다.

//InvRegistry.RegisterInvokeOptions(TypeInfo(WebService), ioDocument);

충분합니다 ... 즐기십시오.

당신의 문제에 대한 해결책은 아니지만 최근에 같은 환경에 곤경에 처했습니다. 웹 서비스 (C#에 쓰기)를 소비하는 올바른 방법을 찾을 때까지 옵션을 여러 번 변경해야했습니다.

확인하다:

- THTTPRIO.Converter.Options
- THTTPRIO.HTTPWebNode
- THTTPRIO.HTTPWebNode.InvokeOptions

나는이 게시물을 찾을 때까지 이틀 동안 벽에 머리를 부딪쳤다. , 서버에 더 이상 널이 없습니다 : o ...

나는 그 설정이 왜 값을 겪게 만드는지 모르겠다. 그것은 단지 (적어도 나를 위해)

실제로 무슨 일이 일어나고 있는지 이해하는 사람이 이것을 설명한다면 좋을 것입니다.

Converter.Options에서 SOSENDMULTIREFOBJ를 제거하면 도움이됩니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top