java怎么拦截某个对象
257
2023-03-08
本文目录一览:
Java 中的 Web Service 分为基于 SOAP 的和基于 REST 的两种,下面简单说一个基于 SOAP 的例子。要使用 JDK6u4 之后的版本才能编译通过。
先编写一个 Web Service 的接口:
@WebService
@SOAPBinding(style = Style.RPC)
public interface TimeServer {
@WebMethod String getTimeAsString();
@WebMethod long getTimeAsElapsed();
}
再编写 Web Service 实现:
import java.util.Date;
import javax.jws.WebService;
@WebService(endpointInterface = "test.TimeServer")
public class TimeServerImpl implements TimeServer {
public String getTimeAsString() { return new Date().toString(); }
public long getTimeAsElapsed() { return new Date().getTime(); }
}
最后启动 Web Service:
public class TimeServerPublisher {
public static void main(String[ ] args) {
Endpoint.publish("ts", new TimeServerImpl());
}
}
如果正常启动,可以用浏览器访问 ts?wsdl 看到这个 Web Service 的 wsdl 文档。
两边是通过接口来交换信息的,当然都需要接口和它的 Stub。
你做实验时可以考虑创建3个项目:
1、接口项目,只包括接口和接口编译后的 Stub 类
2、服务端项目,只包括服务器类,它依赖接口项目。
3、客户端项目,只包括客户端,它依赖接口项目。
如果是从命令行运行它们,那么服务端需要服务端项目和接口项目两个 jar,客户端需要客户端项目和接口项目两个 jar,我们需要面向接口编程减少耦合程度,不要把所有类全部放在同一个项目中编译,将来会碰到很多麻烦事,比如包名太多就可能不支持 OSGi 这种方式。
在远程调用类的应用中,使用静态方法调用时一般需要接口类对应的Stub,我们 lookup 得到的其实是 Stub (它只包括了连接到服务器的参数,然后把你想调用的”服务“ + ”参数“ 发送给服务器并将从服务器返回的结果返回给客户端程序,因此,它其实并没有什么”针对你的程序和服务器的特殊特性),使用动态的调用方式就完全可以做到不需要特定的 Stub 而用一个通用的方式 (也就是 RMI 编译生成的那个 Stub 类的内容我们来自己写成一个框架。
上面一段是废话,来说说怎么配置环境测试它们。
客户端项目中只需要有接口 TestServer 和 TestServerStub 两个类,如果你的参数本身也是一个 Remote 子类,那么参数类也需要有相应的 Stub。
另外,我们客户端也可以仅自带接口类而不自带Stub,在运行的时候可以”请求从服务器上下载一份 Stub",如下:
System.setSecurityManager(new RMISecurityManager());关于java 接口服务端和java服务端socket的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 java 接口服务端的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java服务端socket、java 接口服务端的信息别忘了在本站进行查找喔。
然后在命令行添加额外参数:
-Djava.security.policy=$policy 文件
-Djava.rmi.server.codebase=service-interface/classes/
这样就可以启用 RMI Class Loader 来自动从 codebase 对应的地方查找 Stub 类,这里面 codebase 可以是一个 Http 或 Ftp 协议,注意这个 codebase URL 后面一个 / 是必须的。那个 $policy 文件可以用 JDK\bin\policytool.exe 来生成一个。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~