0

I have installed an aerogear unified push server on my Windows 7-system, did create and update the unifiedpush-database, created a keystore, configured the 'standalone-full.xml' of my wildfly-11.0.0 and finally deployed the 'unifiedpush-server-wildfly.war' beside my 'otherApplication.war'.

But, although there are no more errors on startup of the JBoss and info 'Deployed "unifiedpush-server-wildfly.war" (runtime-name : "unifiedpush-server-wildfly.war")' is given, the call of the push-server-console by http://localhost:8080/ag-push gives an 404-error.

The start-commandline of the wildfly is :

C:\[PathToWildfly]\wildfly-11.0.0.Final\bin\standalone.bat -c standalone-full.xml -Dups.realm.name=aerogear -Dups.auth.server.url=http://127.0.0.1:8080/auth -b 0.0.0.0

What did I miss? Please help!

My (partly) 'standalone-full.xml':

<?xml version='1.0' encoding='UTF-8'?>

<server xmlns="urn:jboss:domain:5.0">
    <extensions>
        ...
    </extensions>
    <management>
        <security-realms>
            <security-realm name="ManagementRealm">
                ...
            </security-realm>
            <security-realm name="ApplicationRealm">
                <server-identities>
                    <ssl>
                        <keystore path="apps.keystore\\keystoreFile.jks" relative-to="jboss.server.config.dir" keystore-password="martin123" alias="serverkey" key-password="martin123" generate-self-signed-certificate-host="localhost"/>
                    </ssl>
                </server-identities>
                <authentication>
                    <local default-user="$local" allowed-users="*" skip-group-loading="true"/>
                    <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
                </authentication>
                <authorization>
                    <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
                </authorization>
            </security-realm>
            <security-realm name="AeroGearRealm">
                <server-identities>
                    <ssl>
                        <keystore path="apps.keystore\\keystoreFile.jks" relative-to="jboss.server.config.dir" keystore-password="martin123" alias="serverkey" key-password="martin123" generate-self-signed-certificate-host="localhost"/>
                    </ssl>
                </server-identities>
            </security-realm>
        </security-realms>
        <audit-log>
            ...
        </audit-log>
        <management-interfaces>
            <http-interface security-realm="ManagementRealm">
                <http-upgrade enabled="true"/>
                <socket-binding http="management-http"/>
            </http-interface>
        </management-interfaces>
        <access-control provider="simple">
            <role-mapping>
                <role name="SuperUser">
                    <include>
                        <user name="$local"/>
                    </include>
                </role>
            </role-mapping>
        </access-control>
    </management>
    <profile>
        <subsystem xmlns="urn:jboss:domain:logging:3.0">
            ...
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">
            ...
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
        <subsystem xmlns="urn:jboss:domain:core-management:1.0"/>
        <subsystem xmlns="urn:jboss:domain:datasources:5.0">
            <datasources>
                <datasource jndi-name="java:/OtherAppDS" pool-name="OtherAppDS" enabled="true">
                    ...
                </datasource>
                <datasource jndi-name="java:jboss/datasources/UnifiedPushDS" pool-name="UnifiedPushDS" enabled="true" use-ccm="false">
                    <connection-url>jdbc:mysql://localhost:3306/unifiedpush?useUnicode=true&amp;characterEncoding=UTF-8</connection-url>
                    <driver>mysql</driver>
                    <pool>
                        <max-pool-size>25</max-pool-size>
                    </pool>
                    <security>
                        <user-name>unifiedpush</user-name>
                        <password>unifiedpush</password>
                    </security>
                    <timeout>
                        <blocking-timeout-millis>5000</blocking-timeout-millis>
                    </timeout>
                </datasource>
                <drivers>
                    <driver name="mysql" module="com.mysql">
                        <driver-class>com.mysql.jdbc.Driver</driver-class>
                    </driver>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
            <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:ee:4.0">
            ...
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:ejb3:5.0">
            ...
        </subsystem>
        <subsystem xmlns="urn:wildfly:elytron:1.2" final-providers="combined-providers" disallowed-providers="OracleUcrypto">
            ...
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:io:2.0">
            <worker name="default"/>
            <buffer-pool name="default"/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:infinispan:4.0">
            <cache-container name="server" default-cache="default" module="org.wildfly.clustering.server">
                <local-cache name="default">
                    <transaction mode="BATCH"/>
                </local-cache>
            </cache-container>
            <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">
                <local-cache name="passivation">
                    <locking isolation="REPEATABLE_READ"/>
                    <transaction mode="BATCH"/>
                    <file-store passivation="true" purge="false"/>
                </local-cache>
            </cache-container>
            <cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">
                <local-cache name="passivation">
                    <locking isolation="REPEATABLE_READ"/>
                    <transaction mode="BATCH"/>
                    <file-store passivation="true" purge="false"/>
                </local-cache>
            </cache-container>
            <cache-container name="hibernate" module="org.hibernate.infinispan">
                <local-cache name="entity">
                    <transaction mode="NON_XA"/>
                    <eviction strategy="LRU" max-entries="10000"/>
                    <expiration max-idle="100000"/>
                </local-cache>
                <local-cache name="local-query">
                    <eviction strategy="LRU" max-entries="10000"/>
                    <expiration max-idle="100000"/>
                </local-cache>
                <local-cache name="timestamps"/>
            </cache-container>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:iiop-openjdk:2.0">
            <orb socket-binding="iiop"/>
            <initializers security="identity" transactions="spec"/>
            <security server-requires-ssl="false" client-requires-ssl="false"/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
        <subsystem xmlns="urn:jboss:domain:jca:5.0">
            <archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
            <bean-validation enabled="true"/>
            <default-workmanager>
                <short-running-threads>
                    <core-threads count="50"/>
                    <queue-length count="50"/>
                    <max-threads count="50"/>
                    <keepalive-time time="10" unit="seconds"/>
                </short-running-threads>
                <long-running-threads>
                    <core-threads count="50"/>
                    <queue-length count="50"/>
                    <max-threads count="50"/>
                    <keepalive-time time="10" unit="seconds"/>
                </long-running-threads>
            </default-workmanager>
            <cached-connection-manager/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>
        <subsystem xmlns="urn:jboss:domain:jmx:1.3">
            <expose-resolved-model/>
            <expose-expression-model/>
            <remoting-connector/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:jpa:1.1">
            <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:jsf:1.0"/>
        <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>
        <subsystem xmlns="urn:jboss:domain:mail:3.0">
            <mail-session name="default" jndi-name="java:jboss/mail/Default">
                <smtp-server outbound-socket-binding-ref="mail-smtp" ssl="false" username="xxxxxxx" password="xxxxxxx"/>
                <pop3-server outbound-socket-binding-ref="mail-pop3" username="xxxxxxx" password="xxxxxxx"/>
            </mail-session>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:messaging-activemq:2.0">
            <server name="default">
                <security-setting name="#">
                    <role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
                </security-setting>
                <address-setting name="#" dead-letter-address="jms.queue.DLQ" expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10"/>
                <address-setting name="jms.queue.AdmPushMessageQueue" max-redelivery-delay="5000" max-delivery-attempts="-1" redelivery-multiplier="1.5" redelivery-delay="1500"/>
                <address-setting name="jms.queue.AdmTokenBatchQueue" address-full-policy="FAIL" max-size-bytes="40000"/>
                <address-setting name="jms.queue.APNsPushMessageQueue" max-redelivery-delay="5000" max-delivery-attempts="-1" redelivery-multiplier="1.5" redelivery-delay="1500"/>
                <address-setting name="jms.queue.APNsTokenBatchQueue" address-full-policy="FAIL" max-size-bytes="40000"/>
                <address-setting name="jms.queue.GCMPushMessageQueue" max-redelivery-delay="5000" max-delivery-attempts="-1" redelivery-multiplier="1.5" redelivery-delay="1500"/>
                <address-setting name="jms.queue.GCMTokenBatchQueue" address-full-policy="FAIL" max-size-bytes="40000"/>
                <address-setting name="jms.queue.MPNSPushMessageQueue" max-redelivery-delay="5000" max-delivery-attempts="-1" redelivery-multiplier="1.5" redelivery-delay="1500"/>
                <address-setting name="jms.queue.MPNSTokenBatchQueue" address-full-policy="FAIL" max-size-bytes="40000"/>
                <address-setting name="jms.queue.SimplePushMessageQueue" max-redelivery-delay="5000" max-delivery-attempts="-1" redelivery-multiplier="1.5" redelivery-delay="1500"/>
                <address-setting name="jms.queue.SimplePushTokenBatchQueue" address-full-policy="FAIL" max-size-bytes="40000"/>
                <address-setting name="jms.queue.WNSPushMessageQueue" max-redelivery-delay="5000" max-delivery-attempts="-1" redelivery-multiplier="1.5" redelivery-delay="1500"/>
                <address-setting name="jms.queue.WNSTokenBatchQueue" address-full-policy="FAIL" max-size-bytes="40000"/>
                <address-setting name="jms.queue.MetricsQueue" max-delivery-attempts="-1"/>
                <address-setting name="jms.queue.TriggerMetricCollectionQueue" max-delivery-attempts="-1" redelivery-delay="1000"/>
                <address-setting name="jms.queue.BatchLoadedQueue" max-delivery-attempts="-1"/>
                <address-setting name="jms.queue.AllBatchesLoadedQueue" max-delivery-attempts="-1"/>
                <http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
                <http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
                    <param name="batch-delay" value="50"/>
                </http-connector>
                <in-vm-connector name="in-vm" server-id="0">
                    <param name="buffer-pooling" value="false"/>
                </in-vm-connector>
                <http-acceptor name="http-acceptor" http-listener="default"/>
                <http-acceptor name="http-acceptor-throughput" http-listener="default">
                    <param name="batch-delay" value="50"/>
                    <param name="direct-deliver" value="false"/>
                </http-acceptor>
                <in-vm-acceptor name="in-vm" server-id="0">
                    <param name="buffer-pooling" value="false"/>
                </in-vm-acceptor>
                <jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
                <jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
                <jms-queue name="InstitutionInterfaceReceiverQueue" entries="java:/jms/queue/InstitutionInterfaceReceiverQueue"/>
                <jms-queue name="MailQueue" entries="java:/jms/queue/mail"/>
                <jms-queue name="AdmPushMessageQueue" entries="queue/AdmPushMessageQueue"/>
                <jms-queue name="AdmTokenBatchQueue" entries="queue/AdmTokenBatchQueue"/>
                <jms-queue name="APNsPushMessageQueue" entries="queue/APNsPushMessageQueue"/>
                <jms-queue name="APNsTokenBatchQueue" entries="queue/APNsTokenBatchQueue"/>
                <jms-queue name="GCMPushMessageQueue" entries="queue/GCMPushMessageQueue"/>
                <jms-queue name="GCMTokenBatchQueue" entries="queue/GCMTokenBatchQueue"/>
                <jms-queue name="MPNSPushMessageQueue" entries="queue/MPNSPushMessageQueue"/>
                <jms-queue name="MPNSTokenBatchQueue" entries="queue/MPNSTokenBatchQueue"/>
                <jms-queue name="SimplePushMessageQueue" entries="queue/SimplePushMessageQueue"/>
                <jms-queue name="SimplePushTokenBatchQueue" entries="queue/SimplePushTokenBatchQueue"/>
                <jms-queue name="WNSPushMessageQueue" entries="queue/WNSPushMessageQueue"/>
                <jms-queue name="WNSTokenBatchQueue" entries="queue/WNSTokenBatchQueue"/>
                <jms-queue name="MetricsQueue" entries="queue/MetricsQueue"/>
                <jms-queue name="TriggerMetricCollectionQueue" entries="queue/TriggerMetricCollectionQueue"/>
                <jms-queue name="TriggerVariantMetricCollectionQueue" entries="queue/TriggerVariantMetricCollectionQueue"/>
                <jms-queue name="BatchLoadedQueue" entries="queue/BatchLoadedQueue"/>
                <jms-queue name="AllBatchesLoadedQueue" entries="queue/AllBatchesLoadedQueue"/>
                <jms-queue name="FreeServiceSlotQueue" entries="queue/FreeServiceSlotQueue"/>
                <jms-topic name="MetricsProcessingStartedTopic" entries="topic/MetricsProcessingStartedTopic"/>
                <connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
                <connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector"/>
                <pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="in-vm" transaction="xa"/>
            </server>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:naming:2.0">
            <remote-naming/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
        <subsystem xmlns="urn:jboss:domain:remoting:4.0">
            <endpoint/>
            <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:resource-adapters:5.0"/>
        <subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
        <subsystem xmlns="urn:jboss:domain:sar:1.0"/>
        <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
            <deployment-permissions>
                <maximum-set>
                    <permission class="java.security.AllPermission"/>
                </maximum-set>
            </deployment-permissions>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:security:2.0">
            ...
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:transactions:4.0">
            ...
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:undertow:4.0">
            <buffer-cache name="default"/>
            <server name="default-server">
                <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<!--                <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>-->
                <https-listener name="https" socket-binding="https" security-realm="AeroGearRealm"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <filter-ref name="server-header"/>
                    <filter-ref name="x-powered-by-header"/>
                    <http-invoker security-realm="ApplicationRealm"/>
                </host>
            </server>
            <servlet-container name="default">
                <jsp-config/>
                <websockets/>
            </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/11"/>
                <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
            </filters>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:webservices:2.0">
            <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
            <endpoint-config name="Standard-Endpoint-Config"/>
            <endpoint-config name="Recording-Endpoint-Config">
                <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
                    <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
                </pre-handler-chain>
            </endpoint-config>
            <client-config name="Standard-Client-Config"/>
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:weld:4.0"/>
    </profile>
    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <any-address/>
        </interface>
        <interface name="unsecure">
            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
        </interface>
    </interfaces>
    <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:9980}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9983}"/>
        <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="iiop" interface="unsecure" port="3528"/>
        <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="mail.kontent.com" port="25"/>
        </outbound-socket-binding>
        <outbound-socket-binding name="mail-pop3">
            <remote-destination host="pop.kontent.com" port="110"/>
        </outbound-socket-binding>
    </socket-binding-group>
</server>

1 Answers1

0

Your console will first talk to KeyCloak for authentication. Aerogear is just one piece of the puzzle, you have to also ensure standalone Keycloak server is up and running (assuming you are using Aerogear 1.2.0-Final)

Have you set up KeyCloak server correctly? Try to test http://127.0.0.1:8080/auth and make sure it is ready for Aerogear/JBoss to authenticate users and a realm is also set up for this purpose.

The documentation is not up to par at this moment. Post your question if you still have the issues.

J D
  • 274
  • 3
  • 17
  • Thank you for the answer! I will try to setup the missings next year. Maybe questions will follow. ☺ – Martin Suhrcke Dec 19 '17 at 09:42
  • Good luck with your Aerogear adventure. Mark it as an answer if this fixes your issue.... this may help others as well. Thanks. – J D Dec 22 '17 at 04:11