프로그래밍/델파이

델파이 7 soap 웹서비스로 JBoss로 메시지 보낼 때 파라미터가 NULL로 넘어가는 에러 해결

panpro 2017. 1. 5. 14:42

참조 : http://stackoverflow.com/questions/25749332/pass-parameter-from-delphi-client-to-java-webservice


델파이 7에서 SOAP으로 JBoss 5로 만든 웹서비스에 메시지를 보내는데

파라미터가 자꾸 NULL이 된다. 

파라미터가 없는 메소드 호출은 넘 잘 되고 결과값도 잘 넘어온다. 신기.


예전에는 HTTPRIO를 따로 둬서 거기에 메시지를 수정하는 식으로 했는데, 

이제는 그렇게 해도 안 되었엇다. 


그래서 문제해결을 위해 

위 링크를 참조해서 확인하다가 넘 쉽게 해결. 


델파이 7.2 professional 에서 WSDL Importer를 이용하면, 


initialization

  InvRegistry.RegisterInterface(TypeInfo(HRTeamEndpointInterface), 'http://kr.co.xxxx.xxxx', '');

  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(HRTeamEndpointInterface), '');

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


이런 파일이 만들어진다. 


맨 마지막 줄을 지우면 된다. 


initialization

  InvRegistry.RegisterInterface(TypeInfo(HRTeamEndpointInterface), 'http://kr.co.kcsc.cdpws', '');

  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(HRTeamEndpointInterface), '');

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


이제 넘 잘된다. 


저 맨 마지막 줄은 C#으로 만든 웹서비스에 메시지 보낼 때 파라미터가 null이 되면 사용하는 거라 한다. 

http://www.bobswart.nl/weblog/Blog.aspx?RootId=5:798


냐하하.