自从我改变以来,我在Eclipse下关闭运行的JBoss实例时遇到了问题 JBoss的JNDI端口。当然,我可以从控制台视图关闭它,但不能 停止按钮(它仍然在默认的1099端口搜索JNDI端口)。我在看 转向任何解决方案。谢谢!
默认端口:1098,1099 更改端口:11098,11099
我在jbosspath / server / default / conf / jboss-service.xml中更改了以下部分:
<!-- ==================================================================== -->
<!-- JNDI -->
<!-- ==================================================================== -->
<mbean code="org.jboss.naming.NamingService"
name="jboss:service=Naming"
xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
<!-- The call by value mode. true if all lookups are unmarshalled using
the caller's TCL, false if in VM lookups return the value by reference.
-->
<attribute name="CallByValue">false</attribute>
<!-- The listening port for the bootstrap JNP service. Set this to -1
to run the NamingService without the JNP invoker listening port.
-->
<attribute name="Port">11099</attribute>
<!-- The bootstrap JNP server bind address. This also sets the default
RMI service bind address. Empty == all addresses
-->
<attribute name="BindAddress">${jboss.bind.address}</attribute>
<!-- The port of the RMI naming service, 0 == anonymous -->
<attribute name="RmiPort">11098</attribute>
<!-- The RMI service bind address. Empty == all addresses
-->
<attribute name="RmiBindAddress">${jboss.bind.address}</attribute>
<!-- The thread pool service used to control the bootstrap lookups -->
<depends optional-attribute-name="LookupPool"
proxy-type="attribute">jboss.system:service=ThreadPool</depends>
</mbean>
<mbean code="org.jboss.naming.JNDIView"
name="jboss:service=JNDIView"
xmbean-dd="resource:xmdesc/JNDIView-xmbean.xml">
</mbean>
关于我的JBoss Tools首选项: 我有一个以前的版本,我遇到了这个问题,我在JbossTools中读到了一些bug修复,所以更新到2.1.1.GA.现在按钮改变了,我有一个新的首选项视图,但我无法修改任何东西......似乎也是异常的:
javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]]
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1385)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at org.jboss.Shutdown.main(Shutdown.java:202)
Caused by: javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:254)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1370)
... 4 more
Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused: connect]
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:228)
... 5 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at java.net.Socket.connect(Socket.java:402)
at java.net.Socket.<init>(Socket.java:309)
at java.net.Socket.<init>(Socket.java:211)
at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:69)
at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:62)
at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:224)
... 5 more
Exception in thread "main"
在File / new / other / server中创建新服务器之后,它确实出现在首选项选项卡中。现在停止按钮正在工作(服务器接收关闭消息而不需要对jndi端口进行任何额外修改 - 现在没有机会)但它仍然会抛出错误消息,尽管不同,它无一例外地堆栈跟踪:“服务器JBoss 4.0 Server无法停止。“
答案 0 :(得分:3)
以下是此问题的详细修复: 重新映射jndi端口时,Eclipse WTP服务器连接器不会关闭JBoss。
这是因为默认服务器连接器配置文件不为jndiPort使用自己的别名。 eclipse.org上也讨论了这个问题: http://www.eclipse.org/forums/index.php?t=msg&goto=489439&S=0db4920aab0a501c80a626edff84c17d#msg_489439
解决方案来自eclipse中的.serverdef文件:
<eclipse>\plugins\org.eclipse.jst.server.generic.jboss_1.5.105.v200709061325\servers\jboss*.serverdef
他们声明了jndi端口的xml属性:
<property id="jndiPort"
label="%jndiPort"
type="string"
context="server"
default="1099" />
这只需要在serverdef具有编码的STOP命令的地方使用:
所以这个:
<stop>
<mainClass>org.jboss.Shutdown</mainClass>
<workingDirectory>${serverRootDirectory}/bin</workingDirectory>
<programArguments>-S</programArguments>
<vmParameters></vmParameters>
<classpathReference>jboss</classpathReference>
</stop>
成为这个:
<stop>
<mainClass>org.jboss.Shutdown</mainClass>
<workingDirectory>${serverRootDirectory}/bin</workingDirectory>
<programArguments>-s jnp://${serverAddress}:${jndiPort}</programArguments>
<vmParameters></vmParameters>
<classpathReference>jboss</classpathReference>
</stop>
可以通过与jndi连接的定义进行比较来验证其理念:
<jndiConnection>
<providerUrl>jnp://${serverAddress}:${jndiPort}</providerUrl>
<initialContextFactory>org.jnp.interfaces.NamingContextFactory</initialContextFactory>
<jndiProperty>
<name></name>
<value></value>
</jndiProperty>
</jndiConnection>
归功于这个一般案例修复的灵感来自:Moisa Laurentiu Florin。正是他们的贡献让我在$ {jndiPort}中寻找替代硬编码值的方法。
此修复程序更正了两个普通的Eclipse WTP服务器连接器。我还在调查JBOss IDE连接器
答案 1 :(得分:3)
打开jboss-path \ bin \ shutdown.jar
示例:jboss-4.2.3.GA \ bin \ shutdown.jar
并打开jboss-path \ bin \ shutdown.jar \ jndi.properties
并更改
java.naming.provider.url = jnp:// localhost:1099 to java.naming.provider.url = jnp:// localhost:11099
答案 2 :(得分:1)
好的,您需要做的是File-&gt; New-&gt; Other-&gt; Server,并在那里设置您的JBoss服务器。然后它将出现在Preferences-&gt; JBossTools-&gt; Servers。
中卷积。
答案 3 :(得分:0)
在MyEclipse服务器配置中,您会找到“Optional Shutdown Argument”字段,该字段填充了默认值
--shutdown
将其更改为
-s jnp://localhost:11099 --shutdown
编辑:
抱歉,这个答案与MyEclipse有关。但是,必须有一些地方可以在您的环境中指定JBoss shutdown命令。 也许您看看“运行......”配置?
答案 4 :(得分:0)
你应该修改文件“/home/fmoisa/workspace/eclipse/plugins/org.eclipse.jst.server.generic.jboss_1.5.206.v20090115/servers/jboss42.serverdef”这个:
org.jboss.Shutdown $ {} serverRootDirectory / bin中 -S -Djboss.boot.loader.name = shutdown.bat jboss.shutdown
到此:
org.jboss.Shutdown $ {} serverRootDirectory / bin中 -S -sjnp:// localhost:11099 -Djboss.boot.loader.name = shutdown.bat jboss.shutdown
gl all;)
答案 5 :(得分:0)
使用JBoss工具提供的服务器适配器,而不是Eclipse WTP默认的服务器适配器。
然后你可以简单地双击服务器,你可以编辑JNDI端口(如果你不做任何事情,那么从XML配置中自动获取btw。)。您还可以通过启动配置中的命令行参数来设置JNDI端口,但这比设置端口值更麻烦。
答案 6 :(得分:0)
这在JBoss 6.0.0M3中已经改变。
现在停止命令:
“ - s service:jmx:rmi:/// jndi / rmi:// localhost:1090 / jmxrmi”
请注意,端口也发生了变化:它不再是1099 的JNDI端口,而是 RMI / JMX端口1090 。因此,您需要在服务器定义中使用另一个配置参数。
我不知道JBoss 6.0.0M3服务器是否需要“JNDI端口”参数。
我在http://www.cs.hs-rm.de/~knauf/public/有一个修改过的eclipse插件,其中包含6.0.0M3的服务器定义,包括此更改。该站点还链接到JBoss论坛帖子,其中包含有关此更改的更多详细信息。
祝你好运
Wolfgang Knauf