大学上了三年了,却才开始想起来写博客,记录一下平时写代码遇到的问题,似乎开始的有点晚,但是,总算是开始了,还是应该给自己鼓鼓掌,毕竟 Better Late Than Never,希望自己能坚持下去。
写本文的初衷是感觉在实现EJB远程调用的DEMO过程中,走了不少的弯路,希望把这个过程记录下来,方便以后的查阅。
EJB概述
EJB是JavaEE的服务器端组件模型,设计目标和核心应用是部署分布式应用程序,简单的说就是把写好的服务器端程序部署到服务器,供远程客户端访问。
环境配置
要实现EJB远程调用,首先要安装wildfly服务器,wildfly服务器的前身就是JBOSS.下载好wildfly10.1.0.Final,wildfly的安装比较简单,就不赘述,因为本文的重点是如何实现远程调用,所以服务器端的代码就不详细说了。只需要写好服务器端,然后开启wildfly,它会自动将你的代码打包并部署。
远程调用
EJB远程调用即是指服务器端程序和客户端调用程序不在同一个JVM里
- 先在另一台电脑里新建一个java project作为客户端。
- 客户端的程序需要引用到服务端的类,所以需要将服务端程序打包成jar文件,并导入客户端程序。
- 除了带入这个jar包之外,还需要将** wildfly安装目录\bin\client\jboss-client.jar** 文件也一并导入客户端程序
- 完成这一步之后,在客户端存放源文件的文件夹下(如src)新建一个ejb-remote-client.peoperties文件。
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=10.30.187.59
remote.connection.default.port =8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
remote.connection.default.username=username
remote.connection.default.password=password
ejb-client-properties文件的内容如上,需要注意的是端口要使用8080,并且需要一个wildfly的用户名和密码,用于远程连接的时候验证身份,不然客户端连接会被拒绝,如果你此前没有创建过用户,可以找到wildfly安装目录下的bin下的add-user.bat,进行添加用户。
最后,由于wildfly默认值能使用localhost访问,所以我们如果想要从别的机器访问,必须修改安装目录下的standalone.xml文件,找到<interfaces></interfaces>,将里面的127.0.0.1都改成0.0.0.0,保存后重新启动服务器,这样,我们就可以从远程调用EJB的服务了。
第一次使用markdown,不太熟,排版很丑,请见谅