从NetBeans启动时更改Wildfly 10端口

从NetBeans启动时更改Wildfly 10端口,netbeans,port,wildfly,offset,Netbeans,Port,Wildfly,Offset,我面临着来自我的WildFly服务器的一些非常奇怪的行为,在检查了所有内容之后,我不再确定我是否做错了什么,或者这是否是WildFly或NetBeans中的一个bug 我正在开发一个应用程序,它使用两个WildFly服务器执行不同的任务,因为我在我的开发计算机上运行这两个服务器,所以它们必须在不同的端口上运行。到目前为止,该系统已经在JBoss7、Java1.7和NetBeans8.0.2上正常运行。 现在我们决定切换到WildFly 10、Java 1.8和NetBeans 8.2 以前的端口

我面临着来自我的WildFly服务器的一些非常奇怪的行为,在检查了所有内容之后,我不再确定我是否做错了什么,或者这是否是WildFly或NetBeans中的一个bug

我正在开发一个应用程序,它使用两个WildFly服务器执行不同的任务,因为我在我的开发计算机上运行这两个服务器,所以它们必须在不同的端口上运行。到目前为止,该系统已经在JBoss7、Java1.7和NetBeans8.0.2上正常运行。 现在我们决定切换到WildFly 10、Java 1.8和NetBeans 8.2

以前的端口配置如下所示:

服务器1:
-在Netbeans中:HTTP端口:8080,JMX端口:9999
-在standalone.xml中:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="http" port="8080"/>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:500}">
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="http" port="8080"/>
然后,不管是用standalone.xml编写的,应用程序运行的端口是8580+500=9080,而不是像旧服务器上那样的8080+500

所以我的第一个问题是如何阻止NetBeans将这些参数发送到WildFly?我希望使用standalone.xml中编写的任何内容。

因此,我下一步尝试的是从standalone.xml中删除端口偏移量,而是设置

<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:10490}"/>
<socket-binding name="http" port="${jboss.http.port:8580}"/>
有人能解释为什么会发生此错误吗?您能建议一些解决方法吗?

除上述配置外,我还尝试了其他一些配置,但没有一种配置能够在端口8580上运行正常的Web服务:

配置:Netbeans端口8580/10490,独立:偏移量0,端口8580/10490
结果:管理控制台在10490上运行,webservice部署到8580,但给出错误JBWS024029

配置:NB端口8580/10490,独立:偏移量500,端口8080/9990
结果:控制台在10990上,WS在9080上,工作正常

配置:NB端口8080/9990,独立:偏移量0,端口8080/9990
结果:9990上的控制台,8080上的WS,工作正常(但这不是一个解决方案,因为这样我就不能运行两台服务器)

配置:NB端口8580/10490,独立:偏移量0,端口8080/9990
结果:控制台在10490,WS在8580,但给出错误JBWS024029

我的想法是,我可以将Netbeans端口设置为8330,将standalone中的偏移量设置为250,这将导致一个工作应用程序在端口8580上运行。但对我来说,这感觉像是某种黑客行为,对于试图重新使用我的配置的同事来说,这将是非常令人困惑的。所以我只能把这当作最后的手段。我还认为,在投入生产之前,我需要找出JBWS024029错误的含义

哦,我还记得别的事。如果我只是使用端口8580/10490启动服务器,然后从管理控制台部署应用程序,那么一切正常。只有在NetBeans中单击war项目上的“运行”来部署应用程序,我才能获得JBWS024029。但在开发环境中,99%的时间我都会这样做


请忽略以上文本的最后一部分,经过进一步的实验,我发现JBWS024029错误完全是随机出现的,无论设置如何,都可以通过反复终止并重新启动服务器来解决,直到它最终决定工作。

如果您的WildFly服务器是从NetBeans启动的,NetBeans将只使用这些参数。手动启动它,然后NetBeans将使用配置的端口连接到它

另一种解决方案是从standalone.xml中删除表达式,这样就不会根据参数计算端口,如下所示:

<socket-binding name="http" port="8580"/>


谢谢,我不知道这些表达式是可选的,这个答案非常有用。如果在每次运行之前不删除部署并重新启动服务器,您是否可以告诉我为什么会出现错误JBWS024029?这是一个Web服务问题,似乎无法访问。我不知道为什么在没有代码的情况下会出现这种情况(即使这样,我也不是cxf专家)
07:19:07,907 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /mferac/IxDokService: javax.servlet.ServletException: JBWS024029: Cannot obtain destination for /xyz/XyzService
    at org.jboss.wsf.stack.cxf.RequestHandlerImpl.findDestination(RequestHandlerImpl.java:173)
    at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:97)
    at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:134)
    at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:88)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298)
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:222)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:136)
    at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.jrHandle(ServletInitialHandler.java)
    at org.zeroturnaround.javarebel.integration.servlet.undertow.cbp.ServletInitialHandlerCBP.handleRequest(ServletInitialHandlerCBP.java:98)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
<socket-binding name="http" port="8580"/>