This article describes the technologies that Java and. NET development Web services call each other. This article includes two parts, the first part describes how to use. NET do client invoke Java write Web services, the second part describes how to use Java to do client calls. NET development Web services.
II: The tools needed for the project
Windows2000 Server (IIS)
Jbuilder9.0 (contains tomcat, axis)
Jdk1.4+java Web Services Develop
Vs.net 2003
Note: If you do not have JBuilder, you will need to download and install Tomcat4.1 and axis development kits and configure them accordingly. Since there are many such articles on the Internet, this is not explained here.
Three: use. NET makes the client invoke Java write Web Services
1. Generate a Java Web Services
Using JBuilder to build a Web service is very simple, and I am doing it with all my help, just one step at a
Go down on it. The specific path is developing Web services-> Tutorials:web Services (Axis)-> creating a simple Web services
2. Publish this Web services and get its WSDL
When Web Services is built, F9 runs the project. Then, click View to browse through the existing Web service, click the Bean1 WSDL connection, and we can view its WSDL description in the browser. Copy the WSDL address in the browser address bar for next use. NET development client to invoke the program.
3. Generate a. NET client with Vs.net
Create a new item (Winform,asp.net can), I'm using a asp.net project here. Place a text input box on the start page to display the results of calling Web services, and place a button to click the Call Web Services. Then, choose to add a Web reference, copy the WSDL address that you just obtained in the WSDL column, enter the name of the Web reference Javaservice, and click the Add Reference button. At this point, we can see this Web reference in Vs.net's solution explore.
Enter the following code in the Click event of the button:
Javaservice.bean1 bean = new Javaservice.bean1 ();
TextBox1.Text = Bean.getSample.ToString ();
So, one. NET client is finished, test, work properly, OK.
Four: Use Java to do client call. NET Write Web Services
With the above success, so I thought that using Java to do client calls is also a very easy thing, but the actual situation has cost me two days to achieve.
1. Create a new ASP Web services project with Vs.net, add a Web service, and name it sumservice.asmx. Add a new Web method with the following code:
[WebMethod]
public int Intadd (int a,int b)
{
return a+b;
}
Then run it and use IE to test the success.
2. Open jbuilder9.0, create a new project, add a Java class, name Testnetservice, and enter the following code:
Running the above Java client program, you will find that the system throws a SOAPAction exception. Strange, how could it be wrong? Thinking about the ASP Web services that I developed did not specify SOAPAction, I added the following code to the previous line of Web method in Sumservice.asmx:
After recompiling the ASP Web services, after executing the Java program, you will find that the output is the correct result 3.
In this way, the Web services that are generated by invoking. NET in Java are also initially completed, as if not very complicated. Actually, in the actual work, I did not find a good code example on the Internet at the beginning, all rely on the help of JBuilder and axis to complete, can always prompt what cannot find corresponding soapaction. In fact, I can see that soapaction in IE browser after running ASP Web services. I have tried to copy the default SOAPAction to Java code, but the Java client still throws the same exception, which I am puzzled.
V: summary
After two days of experimentation, it is technically clear that it is possible to achieve. NET and Java interoperability through Web services. Of course, there are a few points to be noted:
1. When providing Web services, try to use variable types that are supported in XML schemas as parameters. If you use a dataset of. NET, it will be a disaster for Java, and, of course, it can be resolved theoretically. But in terms of efficiency, there is always a problem of serialization and deserialization in the process of exchanging information between Web services and clients. If you use a dataset this type, the system also needs to serialize it, which will be a resource-intensive process. Using the string type is much simpler.
2. If extended features such as SOAP headers are used, such as using the WSE technology provided by Microsoft, the mutual communication between them requires special treatment.
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.