In the previous tutorial, we've learnt how to create a simple web service with Apache Axis. Now, we're going to learn how to create a simple client application to access that web service. This application is a simple desktop application made with Java programming language.
The Code
This is the source code of this application. Save this file with name helloClient.java
import org.apache.axis.AxisFault;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import org.apache.axis.encoding.XMLType;
import javax.xml.rpc.ParameterMode;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class helloClient extends JFrame implements ActionListener{
private JButton btnSend;
private JTextField txtParameter;
public void initComponent(){
btnSend=new JButton("SEND");
btnSend.setMnemonic('S');
btnSend.addActionListener(this);
txtParameter=new JTextField(10);
}
public void design(){
setTitle("Web Service Client");
getContentPane().setLayout(new FlowLayout());
getContentPane().add(txtParameter);
getContentPane().add(btnSend);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private String sendRequest(String name) throws Exception{
Service service = new Service();
Call call = (Call)service.createCall();
String result;
// SET THE LOCATION OF WEB SERVICE
String endpoint = "http://localhost:8080/axis/services";
call.setTargetEndpointAddress( new java.net.URL(endpoint));
// SET THE SERVICE NAME AND THE METHOD TO BE CALLED
call.setOperationName(new QName("helloService", "greeting"));
// ADD THE INPUT PARAMETER
call.addParameter( "name", XMLType.XSD_STRING, ParameterMode.IN );
// SEND REQUEST TO WEB SERVICE
String response = (String) call.invoke(new Object[]{name});
return response;
}
helloClient(){
initComponent();
design();
}
public static void main(String [] args){
new helloClient();
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btnSend){
try{
JOptionPane.showMessageDialog(this,sendRequest(txtParameter.getText()), "Response", JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception ex){
JOptionPane.showMessageDialog(this,"Error : " + ex.toString(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
}
}
Compile
This application needs some Axis' libraries. So, don't forget to set the required environment variables. I have write about this in the previous tutorial. After that, compile the helloClient.java file with this command.
javac -classpath %AXISCLASSPATH% helloClient.java
Run
If your compilation process didn't output any error, you can run this application with this command.
java -classpath .;%AXISCLASSPATH% helloClient
This is the screenshot of this application.


No comments:
Post a Comment