set trusted packages in code
This commit is contained in:
parent
51d96ed908
commit
f2ee187eaf
@ -2,7 +2,6 @@ package de.hsadmin.servlets;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.jms.ExceptionListener;
|
||||
import javax.jms.JMSException;
|
||||
@ -27,8 +26,7 @@ import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnection;
|
||||
import org.apache.activemq.command.ActiveMQQueue;
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
|
||||
import de.hsadmin.core.model.TechnicalException;
|
||||
import de.hsadmin.core.model.TicketValidator;
|
||||
@ -43,6 +41,8 @@ public class QueueStatusReceiverServlet extends HttpServlet
|
||||
|
||||
private static final long serialVersionUID = -5701350884034782083L;
|
||||
|
||||
private static boolean initQueuesDone = false;
|
||||
|
||||
private String jmsUser;
|
||||
private String jmsPass;
|
||||
private QueueConnectionFactory queueConnectionFactory;
|
||||
@ -61,6 +61,14 @@ public class QueueStatusReceiverServlet extends HttpServlet
|
||||
isConnected = false;
|
||||
messageCount = 0;
|
||||
errorCount = 0;
|
||||
try {
|
||||
if (!initQueuesDone) {
|
||||
initQueues();
|
||||
}
|
||||
initQueuesDone = true;
|
||||
} catch (NamingException e) {
|
||||
throw new ServletException(e);
|
||||
}
|
||||
try {
|
||||
connect();
|
||||
} catch (NamingException e) {
|
||||
@ -72,6 +80,35 @@ public class QueueStatusReceiverServlet extends HttpServlet
|
||||
Config config = Config.getInstance();
|
||||
jmsUser = config.getProperty("hsadmin.jms.username", "hsadmin");
|
||||
jmsPass = config.getProperty("hsadmin.jms.password", "hsadmin-pw");
|
||||
InitialContext ctx = new InitialContext();
|
||||
Context env = (Context) ctx.lookup("java:comp/env");
|
||||
queueConnectionFactory = (QueueConnectionFactory) env.lookup("jms/QueueCF");
|
||||
if (queueConnectionFactory instanceof ActiveMQConnectionFactory) {
|
||||
ActiveMQConnectionFactory activeMQConnectionFactory = (ActiveMQConnectionFactory) queueConnectionFactory;
|
||||
activeMQConnectionFactory.setTrustAllPackages(true);
|
||||
}
|
||||
int timeoutCounter = 10;
|
||||
while (!isConnected && (timeoutCounter > 0)) {
|
||||
try {
|
||||
queueConnection = queueConnectionFactory.createQueueConnection(jmsUser, jmsPass);
|
||||
queueConnection.setExceptionListener(this);
|
||||
queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
Queue queue = (Queue) env.lookup("jms/hsadminStatus");
|
||||
queueConnection.start();
|
||||
QueueReceiver receiver = queueSession.createReceiver(queue);
|
||||
receiver.setMessageListener(this);
|
||||
isConnected = true;
|
||||
} catch (JMSException e) {
|
||||
close();
|
||||
try {
|
||||
timeoutCounter--;
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e1) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void initQueues() throws NamingException {
|
||||
InitialContext ctx = new InitialContext();
|
||||
NamingEnumeration<NameClassPair> list = ctx.list("java:comp/env/jms");
|
||||
Transaction transaction = new Transaction("anonymous");
|
||||
@ -91,43 +128,7 @@ public class QueueStatusReceiverServlet extends HttpServlet
|
||||
}
|
||||
transaction.commitTransaction();
|
||||
transaction.close();
|
||||
Context env = (Context) ctx.lookup("java:comp/env");
|
||||
queueConnectionFactory = (QueueConnectionFactory) env.lookup("jms/QueueCF");
|
||||
int timeoutCounter = 10;
|
||||
while (!isConnected && (timeoutCounter > 0)) {
|
||||
try {
|
||||
queueConnection = queueConnectionFactory.createQueueConnection(jmsUser, jmsPass);
|
||||
queueConnection.setExceptionListener(this);
|
||||
if (queueConnection instanceof ActiveMQConnection) {
|
||||
checkQueues((ActiveMQConnection) queueConnection, new PrintWriter(System.out));
|
||||
}
|
||||
queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
Queue queue = (Queue) env.lookup("jms/hsadminStatus");
|
||||
queueConnection.start();
|
||||
QueueReceiver receiver = queueSession.createReceiver(queue);
|
||||
receiver.setMessageListener(this);
|
||||
isConnected = true;
|
||||
} catch (JMSException e) {
|
||||
close();
|
||||
try {
|
||||
timeoutCounter--;
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e1) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void checkQueues(ActiveMQConnection amqConn, PrintWriter writer) {
|
||||
try {
|
||||
writer.print("\n");
|
||||
Set<ActiveMQQueue> queues = amqConn.getDestinationSource().getQueues();
|
||||
for (ActiveMQQueue queue : queues) {
|
||||
writer.print("Phys: " + queue.getPhysicalName() + " - Qual: " + queue.getQualifiedName() + "\n");
|
||||
}
|
||||
} catch (JMSException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
ctx.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -138,9 +139,6 @@ public class QueueStatusReceiverServlet extends HttpServlet
|
||||
writer.println("Verbindungsstatus: " + (isConnected ? "OK" : "ERROR"));
|
||||
writer.println("Verarbeitete Nachrichten: " + messageCount);
|
||||
writer.println("Verarbeitungsfehler: " + errorCount);
|
||||
if (queueConnection instanceof ActiveMQConnection) {
|
||||
checkQueues((ActiveMQConnection) queueConnection, writer);
|
||||
}
|
||||
writer.close();
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ After=network.target nss-lookup.target
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
|
||||
Environment="JAVA_OPTS=-Xbootclasspath/a:/etc/hsadmin/qserv/ -Djavax.net.ssl.keyStore=/etc/hsadmin/qserv/keystore -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=/etc/hsadmin/qserv/truststore -Djavax.net.ssl.trustStorePassword=password -Dorg.apache.activemq.SERIALIZABLE_PACKAGES=java.lang,javax.security,java.util,org.apache.activemq,org.fusesource.hawtbuf,com.thoughtworks.xstream.mapper,de.hsadmin.core.qserv,de.hsadmin.mods.cust,de.hsadmin.mods.db,de.hsadmin.mods.dom,de.hsadmin.mods.email,de.hsadmin.mods.pac,de.hsadmin.mods.qstat,de.hsadmin.mods.user"
|
||||
Environment="JAVA_OPTS=-Xbootclasspath/a:/etc/hsadmin/qserv/ -Djavax.net.ssl.keyStore=/etc/hsadmin/qserv/keystore -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=/etc/hsadmin/qserv/truststore -Djavax.net.ssl.trustStorePassword=password -Dorg.apache.activemq.SERIALIZABLE_PACKAGES=*"
|
||||
ExecStart=/usr/bin/java $JAVA_OPTS -jar /usr/local/lib/hostsharing/hsadmin/hsadmin-qserv-full.jar /etc/hsadmin/qserv/qserv.properties
|
||||
StandardOutput=file:/var/log/hostsharing/hsadmin/hsar-qserv.err
|
||||
StandardError=inherit
|
||||
|
@ -15,6 +15,7 @@ import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityTransaction;
|
||||
import javax.persistence.Query;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
import org.apache.openjpa.persistence.OpenJPAEntityManager;
|
||||
|
||||
import de.hsadmin.core.qserv.QueueClient;
|
||||
@ -42,6 +43,10 @@ public class Transaction {
|
||||
ctx = new InitialContext();
|
||||
Context env = (Context) ctx.lookup("java:comp/env");
|
||||
queueConnectionFactory = (QueueConnectionFactory) env.lookup("jms/QueueCF");
|
||||
if (queueConnectionFactory instanceof ActiveMQConnectionFactory) {
|
||||
ActiveMQConnectionFactory activeMQconnectionFatory = (ActiveMQConnectionFactory) queueConnectionFactory;
|
||||
activeMQconnectionFatory.setTrustAllPackages(true);
|
||||
}
|
||||
} catch (NamingException e) {
|
||||
throw new TechnicalException("no jms queue: jms/QueueCF", e);
|
||||
}
|
||||
|
@ -7,7 +7,6 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.jms.Connection;
|
||||
import javax.jms.ConnectionFactory;
|
||||
import javax.jms.Destination;
|
||||
import javax.jms.ExceptionListener;
|
||||
import javax.jms.JMSException;
|
||||
@ -24,6 +23,8 @@ import javax.jms.Session;
|
||||
import javax.naming.Context;
|
||||
import javax.naming.InitialContext;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
|
||||
public class QueueServer extends QueueCommons implements MessageListener, ExceptionListener {
|
||||
|
||||
private static final String VERSION_NO = "4.0.11";
|
||||
@ -84,7 +85,7 @@ public class QueueServer extends QueueCommons implements MessageListener, Except
|
||||
}
|
||||
});
|
||||
while (!qServ.connect()) {
|
||||
Thread.sleep(120000);
|
||||
Thread.sleep(30000);
|
||||
}
|
||||
while (true) {
|
||||
Thread.sleep(10000);
|
||||
@ -129,8 +130,11 @@ public class QueueServer extends QueueCommons implements MessageListener, Except
|
||||
// create JMS connection and session
|
||||
try {
|
||||
Context ctx = new InitialContext();
|
||||
QueueConnectionFactory connectionFactory =
|
||||
(QueueConnectionFactory) ctx.lookup(jmsFactory);
|
||||
QueueConnectionFactory connectionFactory = (QueueConnectionFactory) ctx.lookup(jmsFactory);
|
||||
if (connectionFactory instanceof ActiveMQConnectionFactory) {
|
||||
ActiveMQConnectionFactory activeMQConnectionFactory = (ActiveMQConnectionFactory) connectionFactory;
|
||||
activeMQConnectionFactory.setTrustAllPackages(true);
|
||||
}
|
||||
conn = connectionFactory.createQueueConnection(jmsUserName, jmsPassWord);
|
||||
conn.setExceptionListener(this);
|
||||
queueSession = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
@ -211,7 +215,11 @@ public class QueueServer extends QueueCommons implements MessageListener, Except
|
||||
try {
|
||||
logger.log(Level.INFO, "sendStatus(" + queueMessage + ")");
|
||||
Context ctx = new InitialContext();
|
||||
ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup(jmsFactory);
|
||||
QueueConnectionFactory connectionFactory = (QueueConnectionFactory) ctx.lookup(jmsFactory);
|
||||
if (connectionFactory instanceof ActiveMQConnectionFactory) {
|
||||
ActiveMQConnectionFactory activeMQConnectionFactory = (ActiveMQConnectionFactory) connectionFactory;
|
||||
activeMQConnectionFactory.setTrustAllPackages(true);
|
||||
}
|
||||
Destination queue = (Destination) ctx.lookup(jmsStatusQueue);
|
||||
statusConnection = connectionFactory.createConnection(jmsUserName, jmsPassWord);
|
||||
statusSession = statusConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
|
Loading…
Reference in New Issue
Block a user