I have install Tomcat 7.0 and Netbeans IDE 7.4 in my localhost, I create an JSF 2.2 web app, in this project i create an web service name ChargingGateway have a WebMethod like this:
@WebMethod(operationName = "LoginandCharging")
public String LoginandCharging(@WebParam(name = "usernameVMG") String txtusernameVMG,@WebParam(name = "passwordVMG") String txtpasswordVMG,@WebParam(name = "servicename") String txtservicename, @WebParam(name = "serial") String txtserial, @WebParam(name = "pin") String txtpin, @WebParam(name = "cardtype") String txtcardtype) throws JSONException, Exception {
//login
String output="";
int ID=-1;
boolean loginOK =false;
Connection conn1=DBUlti.DBConnect.getConnectionVMG();
UserDAL dal = new UserDAL(conn1);
VMGLog log1= new VMGLog();
log1.WriteLog(txtusernameVMG+","+txtpasswordVMG+","+txtserial+","+txtpin+","+txtservicename+","+txtcardtype);
ResultSet rs = dal.LoginVMG(txtusernameVMG, txtpasswordVMG);
if(rs.next()){
log1.WriteLog("login success");
UserEntityVMG entity = new UserEntityVMG();
entity.setID(rs.getInt("ID"));
ID=rs.getInt("ID");
entity.setUsername(rs.getString("Username"));
entity.setPassword(rs.getString("Password"));
entity.setMsisdn(rs.getString("msisdn"));
entity.setEmail(rs.getString("email"));
entity.setRegister_date(rs.getDate("register_date"));
entity.setIsBanned(rs.getBoolean("isBanned"));
entity.setRoll(rs.getInt("Roll"));
loginOK=true;
}
if(loginOK==true){
StringBuilder data = new StringBuilder();
String cardtype = "";
int minlengthOfPin = 0;
int maxlengthOfPin = 0;
int minlengOfSerial = 0;
int maxlengOfSerial = 0;
boolean isSendserial = true;
boolean isSendcardtype=true;
//servicename:fpt,epay,vtc
log1.WriteLog("login=true");
String servicename = txtservicename;
log1.WriteLog(servicename);
if (servicename.equalsIgnoreCase("EPAY")) {
String temp = txtcardtype;
if (temp.equalsIgnoreCase("VNP")) {
minlengthOfPin = 12;
maxlengthOfPin = 15;
minlengOfSerial = 9;
maxlengOfSerial = 9;
} else if (temp.equalsIgnoreCase("VMS")) {
minlengthOfPin = 12;
maxlengthOfPin = 14;
minlengOfSerial = 9;
maxlengOfSerial = 15;
} else if (temp.equalsIgnoreCase("VTT")) {
minlengthOfPin = 13;
maxlengthOfPin = 15;
minlengOfSerial = 11;
maxlengOfSerial = 15;
} else if (temp.equalsIgnoreCase("MGC")) {
minlengthOfPin = 12;
maxlengthOfPin = 12;
minlengOfSerial = 12;
maxlengOfSerial = 12;
isSendserial = false;
}
cardtype = temp;
}
else if (servicename.equalsIgnoreCase("FPT")) {
cardtype = "FPT";
minlengthOfPin = 10;
maxlengthOfPin = 10;
minlengOfSerial = 10;
maxlengOfSerial = 10;
}
else if (servicename.equalsIgnoreCase("VTC")) {
cardtype = "VTC";
minlengthOfPin = 12;
maxlengthOfPin = 12;
minlengOfSerial = 12;
maxlengOfSerial = 12;
}
if(cardtype.length()<=0){
isSendcardtype=false;
}
log1.WriteLog("Sname:"+servicename);
data.append(servicename);
log1.WriteLog("user"+Bussiness.user);
data.append(Bussiness.user);
log1.WriteLog("txtserial"+txtserial);
if(isSendserial==true){
data.append(txtserial);
}
log1.WriteLog("pin"+txtpin);
log1.WriteLog("cardtype:"+cardtype);
data.append(txtpin);
if(isSendcardtype==true){
data.append(cardtype);
}
log1.WriteLog("subcpid"+Bussiness.subcpid);
data.append(Bussiness.subcpid);
String mac = des.DESMAC(data.toString(), EpurseConfig.keyUI, "DESede");
log1.WriteLog("Mac="+mac+",data="+data.toString());
String username = Bussiness.user;
String serial = "";
System.out.println("serial length:" + txtserial.length());
if (txtserial.length() >= minlengOfSerial && txtserial.length() <= maxlengOfSerial) {
serial = des.Encrypt(txtserial, EpurseConfig.keyUI, "DESede");
}
else output="";
String pin = "";
System.out.println("pin length:" + txtpin.length());
if (txtpin.length() >= minlengthOfPin && txtpin.length() <= maxlengthOfPin) {
pin = des.Encrypt(txtpin, EpurseConfig.keyUI, "DESede");
}
else output="";
String subcp = Bussiness.subcpid;
log1.WriteLog("Bat dau day JSON");
JSONObject json = new JSONObject();
json.put("servicename", servicename);
json.put("username", username);
if(serial.length()>0){
json.put("serial", serial);
}
json.put("pin", pin);
if(cardtype.length()>0){
json.put("cardtype", cardtype);
}
json.put("subcp", subcp);
json.put("mac", mac);
log1.WriteLog("BGoi webservice");
String response = new ServiceCardProxy(endpoint).gateCardInput(json.toString());
log1.WriteLog("Response="+response);
JSONObject jsonResponse = (JSONObject) new JSONParser().parse(response);
String Flag=jsonResponse.get("flag").toString();
String Description=jsonResponse.get("description").toString();
String cardAmount=jsonResponse.get("cardAmount").toString();
String cardID=jsonResponse.get("cardID").toString();
ChargingDAL dalCharge= new ChargingDAL(conn1);
int InsertData=dalCharge.ChargeVMG(ID,servicename,serial, pin, cardtype, Flag,Description,cardAmount,cardID);
output= response;
}
return output;
}
use for logging user information & response info from another API. I build and deployed OK => got the war file after building project: "Building jar: D:\Setup\Java\RDB_JSF\dist\RDB_JSF.war".
I follow this tutorial: Deploying and Testing the Web Service
After you deploy a web service to a server, you can use the IDE to open the server's test client, if the server has a test client. The GlassFish and WebLogic servers provide test clients.
If you are using the Tomcat Web Server, there is no test client. **You can only run the project and see if the Tomcat Web Services page opens. In this case, before you run the project, you need to make the web service the entry point to your application. To make the web service the entry point to your application, right-click the CalculatorWSApplication project node and choose Properties. Open the Run properties and type /CalculatorWS in the Relative URL field. Click OK. To run the project, right-click the project node again and select Run.**
at this link :https://netbeans.org/kb/docs/websvc/jax-ws.html#Exercise_1 so I change the Relative URL field to /ChargingGateway which is my service name. Then I run the project and browse to "localhost:8080/RDB_JSF/ChargingGateway", I got "HTTP Status 404 - /RDB_JSF/ChargingGateway" error.
Please help me on deploying web services on Tomcat.