gpt4 book ai didi

c# - 从 .Net 项目调用 Java Web 服务

转载 作者:行者123 更新时间:2023-11-30 11:54:50 24 4
gpt4 key购买 nike

希望大家帮帮我。

我是一名使用 C# 代码的 .Net 开发人员。我的任务是调用同事用 Java 编写的 Web 服务。我们遇到的第一个问题是他不会说 .Net 而我不会说 Java。

第一个问题是使用网络引用还是服务引用。从我的程序可以找到服务并添加引用的意义上来说,两者似乎都有效。但是我的项目中没有公开服务引用。出于这个原因,我至少现在使用了 Web 引用。

我可以设置任何属性并调用它们,而且效果很好。我的问题是如何调用该方法。当我问我的同事时,他似乎不明白我在说什么。

我需要答案,如果它很简单,或者如果我需要以 Java 人员能够理解我在说什么的方式问我的同事一个问题。

这是我写的代码:

WebReference.getContactUs myContactUs = new WebReference.getContactUs();

myContactUs.ContactUsReceived = DateTime.Now;
myContactUs.FirstName = "Bob";
myContactUs.LastName = "Avallone";
DateTime _ThisDateTime = myContactUs.ContactUsReceived;

这是来自wsdl的代码

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://contactus.nrcme.fmcsa.dot.gov/" xmlns:ns1="http://nrcme.fmcsa.dot.gov/ContactUs/" name="ContactUs" targetNamespace="http://nrcme.fmcsa.dot.gov/ContactUs/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xs:schema targetNamespace="http://nrcme.fmcsa.dot.gov/ContactUs/" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="getContactUs">
<xs:complexType>
<xs:sequence>
<xs:element name="ContactUsReceived" type="xs:dateTime" />
<xs:element name="FirstName" type="xs:string" />
<xs:element name="LastName" type="xs:string" />
<xs:element name="Title" type="xs:string" />
<xs:element name="Organization" type="xs:string" />
<xs:element name="Address1" type="xs:string" />
<xs:element name="Address2" type="xs:string" />
<xs:element name="City" type="xs:string" />
<xs:element name="State" type="xs:string" />
<xs:element name="ZipCode" type="xs:string" />
<xs:element name="Telephone" type="xs:string" />
<xs:element minOccurs="0" name="Fax" type="xs:string" />
<xs:element name="Email" type="xs:string" />
<xs:element name="EmailConfirm" type="xs:string" />
<xs:element minOccurs="0" name="Comment" type="xs:string" />
<xs:element minOccurs="0" name="Question1" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getContactUsResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="ContactUsReceived" type="xs:dateTime" />
<xs:element minOccurs="0" name="status" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="ContactUs_getContactUsResponse">
<part name="getContactUsResponse" element="ns1:getContactUsResponse" />
</message>
<message name="ContactUs_getContactUs">
<part name="getContactUs" element="ns1:getContactUs" />
</message>
<portType name="ContactUs">
<operation name="getContactUs" parameterOrder="getContactUs">
<input message="ns1:ContactUs_getContactUs" />
<output message="ns1:ContactUs_getContactUsResponse" />
</operation>
</portType>
<binding name="ContactUsBinding" type="ns1:ContactUs">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="getContactUs">
<soap:operation soapAction="http://nrcme.fmcsa.dot.gov/ContactUs/getContactUs" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
</definitions>

提前致谢,这个论坛很棒。

最佳答案

我看到的问题之一是 WSDL 使事情变得有点困惑。它将 XML 数据对象元素名称和 Web 服务操作定义为“getContactUs”。我将讨论将 XML 数据元素从“getContactUs”更改为类似于“ContactInfo”的内容。如果这个元素发生变化,您很可能会发现您对这个命名感到困惑。

通常,您需要执行一些操作才能执行 Web 服务。第一个是检索服务的 WebReference 代理实例。第二个是根据需要初始化任何输入参数。最后,您将使用代理类来调用服务方法。我相信您已经执行了第二步,但是您错过了允许您访问 Web 服务调用的第一步。根据您的代码,服务调用可能类似于以下内容:

WebReference.ContactUs myService = new WebReference.ContactUs();
...
<result data type> _Response = myService.getContactUs(myContactUs);
...

关于c# - 从 .Net 项目调用 Java Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com