`
airshiplay
  • 浏览: 43799 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JNDI服务--jnp

    博客分类:
  • JNDI
 
阅读更多

Java 应用程序与Java应用程序通信一般采用JNDI方式。

本文将jboss中的jndi服务单独抽取出来,放到自己的应用程序中中,方便不同的java程序互相远程调用。用户不用单独写Socket进行通信(自己管理消息应答--网络包的丢失),更具有实时性,确保消息准确可靠的传输,更方便快捷开发Java应用程序。

 

jnpserver 路径为:

https://repository.jboss.org/nexus/service/local/repositories/releases/content/org/jboss/naming/jnpserver/5.0.5.Final/jnpserver-5.0.5.Final.jar

其依赖两个jar:     jboss-logging-spi-2.0.5.GA.jar       jboss-common-core-2.2.10.GA.jar

 

一、

在自己的代码中使用jndi ,首先要启动这个服务,

 

新建一个线程专门启动服务

 

 

				private NamingBeanImpl namingBean;
				private Main namingMain;
				@Override
				public void run() {
					
					if (namingBean == null) {
						namingBean = new NamingBeanImpl();
						try {
							namingBean.start();
							namingMain = new Main("org.jnp.server");
							namingMain.setNamingInfo(namingBean);
							namingMain.setPort(1099);//
							namingMain.setBindAddress("192.168.8.34");//为本机IP
							namingMain.start();
						} catch (Exception e) {
							throw new RuntimeException("启动JNDI服务失败!",e.getCause());
						}
					}
				}

 注意需要增加配置文件jndi.properties,否则提示需要环境变量设置。

 

# DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING
#
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

二、 

使用时 和同使用JBOSS中的jndi相同,简单实例如下:

 

 

		Hashtable<String, String> c = new Hashtable<String, String>();
		c.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
		c.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
		c.put("java.naming.provider.url", "jnp://192.168.8.34:1099");

		try {
			ctx = new InitialContext(c);
			ctx.bind("test", new String("test"));//绑定一个接口
			String s = (String) ctx.lookup("test");//查找一个接口
			System.out.println(s);//输出结果
		} catch (NamingException e) {
			e.printStackTrace();
		}
 

 

分享到:
评论
1 楼 clockmaker 2015-04-30  
哥们 jboss-logging-spi-2.0.5.GA.jar       jboss-common-core-2.2.10.GA.jar这两个包从哪下载啊?

相关推荐

    EJB MDB JNDI配置信息

    - **`java.naming.factory.initial`**: `"org.jnp.interfaces.NamingContextFactory"` - **`java.naming.provider.url`**: `"localhost:1099"` **说明**: - JBoss使用`NamingContextFactory`作为初始化上下文工厂...

    在jboss同时启动两个实例

    - **jndicontext-agent-applying.properties**:同样位于`jboss-4.0.2\server\default\deploy\jms`目录下,包含了JNDI服务的连接信息。 #### 4. 修改端口号 下面详细介绍每个配置文件的具体修改步骤: ##### 4.1 ...

    基于Spring-DM实现分布式服务框架(DSF).docx

    发布服务则借鉴了Spring的ServiceExporter,V0.7版本中暂时只支持通过JNDI发布,利用JBoss JNP作为JNDI服务器,并支持Hessian和Web服务方式。 值得注意的是,如果服务应用端不是基于Spring实现,可能需要自定义...

    基于Spring-DM实现分布式服务框架(DSF).pdf

    JNDI服务器选用JBoss的JNP,提供服务注册和发现的接口。 在DSF V0.7之后的版本,可能会根据实际需求引入更多机制调整和支持,比如针对不同场景优化服务元信息的存储和更新策略,或者提供更灵活的服务发现和通信机制...

    JBOSS培训资源.ppt

    JNDI 架构包括了核心组件,如端口(Port)、RMI 端口(RmiPort)、绑定地址(BindAddress)等,这些组件共同确保了服务的正常运行。 **JNDI 在 JBoss 中的配置** 在 JBoss 中使用 JNDI 需要配置一系列的属性,例如...

    如何让J2EE程序脱离容器

    在J2EE架构中,程序通常依赖于特定的容器来提供服务,如EJB、JTA、JNDI、JMS等。然而,有时候J2SE应用程序也能从一些J2EE技术中受益,即使它们并不运行在完整的J2EE容器内。本文探讨了如何在J2SE应用程序中利用部分...

    Jboss 下开发EJB简介.doc

    在客户端调用EJB之前,需要确保客户端能够正确地访问服务器端的JNDI命名服务。如果客户端和服务器位于不同的Java虚拟机上,则需要在客户端提供一个`jndi.properties`文件,该文件应包含如下信息: - `java.naming....

    Jboss下开发EJB简介[借鉴].pdf

    对于EJB客户端配置,当客户端与服务器不在同一Java虚拟机(JVM)上时,需要在客户端创建一个jndi.properties文件,指定JNDI命名服务的初始工厂和提供者URL。例如: ``` java.naming.factory.initial=org.jnp....

    开发EJB在JBOSS下面的步骤

    当客户端(如JSP、Servlet或独立应用)与服务器不在同一Java虚拟机上时,需要在客户端设置`jndi.properties`文件,指定JNDI命名服务的工厂和提供者URL,以及将其加入classpath。例如: ``` java.naming.factory....

    jboss ejb3.0开发介绍

    - 配置 JNDI 数据源(例如 `java:/MSSQLDS`),确保与数据连接池配置中的 JNDI 名称一致。 2. **生成实体 Bean** - 使用 MyEclipse 自动生成实体 Bean 类,这通常涉及到根据数据库表结构自动生成对应的 Java 类...

    EJB3.0范例,开发环境搭建,服务器端程序,客户端调用程序

    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=tcp://localhost:1099 ``` 3. **测试与...

    Jboss上部署EJB方法

    当客户端与服务器不在同一JVM时,需要在客户端创建一个`jndi.properties`文件,指定JNDI命名服务的初始工厂和提供者URL,并将其路径添加到classpath。例如: ``` java.naming.factory.initial=org.jnp.interfaces....

    myclipse+jboss+ejbStateless

    &lt;br&gt; 测试代码完成测试 &lt;br&gt; 报错:Cannot instantiate class: org.jnp.interfaces.NamingContextFactory &lt;br&gt; 添加 引用 &lt;br&gt;继续报错是因为JNDI访问名称错误,也是用了原来的那个了。哈哈。...

    jboss配置入门学习教程.doc

    在JNDI中,这个端口用于查找和管理服务。 3. 配置文件结构 - DTD定义文件位于`$JBOSS_HOME/docs/dtd`,这些文件解释了XML配置文件中的元素和属性含义。 - 数据源配置文件位于`$JBOSS_HOME/server/default/deploy`...

    EJB3快速入门

    &lt;jndi-name&gt;MySQLServer&lt;/jndi-name&gt; &lt;connection-url&gt;jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_sp&lt;/connection-url&gt; &lt;driver-class&gt;...

    JBuilder,JBoss与Sybase配置指南

    - 在对应的 `classes` 目录下创建 `jndi.properties` 文件。 - 编写以下配置: ``` java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=localhost:1099 java....

    EJB HelloWorld

    可以看到Global JNDI Namespace HelloWorldBean (class: org.jnp.interfaces.NamingContext) 4.编写客户端访问: Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org....

    jboss的安装与ejb的工程的配置(原创)

    jBoss是一个开源的应用服务器,支持多种企业级应用服务,包括EJB(Enterprise JavaBeans)、JMS(Java Messaging Service)、JDBC(Java Database Connectivity)等。而EJB则是Java EE平台的一部分,主要用于开发...

    EJB client调用EJB3 .doc

    C) 设置`InitialContext`的环境属性以指定JNDI服务的地址和实现,例如: ```java Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "org.jnp.interfaces....

Global site tag (gtag.js) - Google Analytics