作为简单测试EJB的方法,WebService绝对是J2EE的首选,J2EE的标准已经把很多WebService的发布和测试工作简化了,这就使得所有工作看起来变得非常简单。
1. 首先定义自己的接口并实现之
@Remote
public interface StringEncryptionService {
/**
* @param plainText
* @return
*/
String encrypt(String plainText);
/**
* @param cipherText
* @return
*/
String decrypt(String cipherText);
}
这里就简单定义个接口,实现也很简单,就不写了
2. 实现WebService 对其进行测试,
@Stateless
@WebService
public class StringEncryptionWebservice {
@EJB
StringEncryptionService stringEncryptionService;
/**
* {@inheritDoc}
*/
@WebMethod
@WebResult(name = "cipherText")
public String encrypt(@WebParam(name = "plainText") String plainText) {
return stringEncryptionService.encrypt(plainText);
}
/**
* {@inheritDoc}
*/
@WebMethod
@WebResult(name = "plainText")
public String decrypt(@WebParam(name = "cipherText") String cipherText) {
return stringEncryptionService.decrypt(cipherText);
}
}
@EJB 注入自己的实现类,然后使用@WebService注解把这个类变成WebService,
@WebMethod就是WebService所暴露的方法,
@WebResult 和 @WebParam是用来改变参数的名字,使用起来只是把默认的名字分别用
“cipherText”和“plainText”替换就可以了。
3. 在Eclipse里测试WebService
暴露好WebService的EJB一经发布就可以测试,使用JAVA EE工程发布EJB,
可以得到相应的WSDL,比如http://wswincnhz0755:9080/StringEncryptionWebserviceService/StringEncryptionWebservice?wsdl
在Eclipse 里建立Webservice Client,之后就可以方便的使用它了
StringEncryptionWebserviceProxy sewp = new StringEncryptionWebserviceProxy();
System.out.println(sewp.encrypt("123"));
System.out.println(sewp.decrypt("VlXPkr9TSZ9tJVzFwWYs7AIsSOTBnkm9pECY96kqTHY/PfZR8eGx+mibRrq1Fh6MF/jaLA=="));