Java 无法在Wildfly 8.1.0 Final上将多个war包部署到侦听不同端口的不同主机?

Java 无法在Wildfly 8.1.0 Final上将多个war包部署到侦听不同端口的不同主机?,java,wildfly-8,Java,Wildfly 8,我的用例涉及在单个Wildfly服务器上部署两个不同的包(war文件) 在standalone full.xml中,添加额外套接字后,我的套接字绑定组如下所示 <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}"> <socket-binding name="managemen

我的用例涉及在单个Wildfly服务器上部署两个不同的包(war文件)

standalone full.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="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="jacorb" interface="unsecure" port="3528"/>
    <socket-binding name="jacorb-ssl" interface="unsecure" port="3529"/>
    <socket-binding name="messaging-group" port="0" multicast-address="${jboss.messaging.group.address:231.7.7.7}" multicast-port="${jboss.messaging.group.port:9876}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <socket-binding name="mylocal-internal" port="8099"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

standalone full.xml中,添加外部服务器后,我的子系统如下所示

<subsystem xmlns="urn:jboss:domain:undertow:1.1">
            <buffer-cache name="default"/>
            <server name="default-server">
                <http-listener name="default" socket-binding="http"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <filter-ref name="server-header"/>
                    <filter-ref name="x-powered-by-header"/>
                    <single-sign-on path="/"/>
                </host>
            </server>
            <server name="mylocal-internal-server">
                <http-listener name="config-listener" socket-binding="mylocal-internal"/>
                <host name="mylocal-host" alias="localhost2">
                    <location name="/" handler="welcome-content"/>
                    <filter-ref name="server-header"/>
                    <filter-ref name="x-powered-by-header"/>
                    <single-sign-on path="/"/>
                </host>
            </server>
            <servlet-container name="default">
                <jsp-config/>
            </servlet-container>
            <handlers>
                <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
            </handlers>
            <filters>
                <response-header name="server-header" header-name="Server" header-value="WildFly/8"/>
                <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
            </filters>
   </subsystem>

另外,myapp war的jboss web.xml文件如下所示

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
      http://www.jboss.com/xml/ns/javaee
      http://www.jboss.org/j2ee/schema/jboss-web_8_0.xsd">
  <context-root>/myapp</context-root>
  <virtual-host>mylocal-host</virtual-host>
  <server-instance>mylocal-internal-server</server-instance>
</jboss-web>

/myapp
局部宿主
本地内部服务器
当我在9990通过管理控制台上传和部署war文件时,一切都成功部署,但当我尝试在新端口8099上访问myapp时,我收到404 Not Found错误。 我正在尝试像这样访问它

但是,如果我为8080端口部署war,那么它在


请对此提出建议。

这个答案的一些历史记录取自评论,以完成图片

  • 此问题的配置设置取自JBoss论坛中现有的非现场问答,这清楚地表明,目前的设置几乎没有错误;正确的配置已经到位,只是有些东西仍然需要重新配置

  • 通过一点比较,可以发现的唯一区别是主机别名配置不同(localhost->localhost2)。但是,上面JBoss论坛线程中的源材料没有配置为用于生产部署,它是在本地主机上进行开发的设置。这个问题是关于在生产中使用正确的域名部署服务器。因此,在这里可以找到丢失的链接

  • 正如这个现有的相关stackoverflow问题所表明的那样,您需要在别名中输入正确的主机名以使其正常工作

这也是这个问题的最终解决方案;将域名添加到主机别名

<host name="mylocal-host" alias="localhost2, my.domainname.com">
  ...
</host>

...
在我的例子()中,我必须为虚拟服务器添加“默认主机”(除了其他答案中建议的内容之外)



否则,我无法从系统外部访问不同端口上的服务。您可以找到完整的配置

@Gimby当我尝试mydomain:8099时,它给了我一个来自服务器的普通404 Not Found,我可以看到服务器正在使用netstat监听8099。是的,我已经参考了你提到的URL,并遵循了步骤。@Gimby Love you mate。它解决了这个问题。请将其作为答案发布,我将接受:)不完全确定是否应将其标记为副本,但我还是回答了,以保留历史和所涉及的资源。这是一个
<server name="jolokia-server" default-host="jolokia-host">