ich eine Frage über Kontext config in Tomcat haben 8. Ich Projekt von Tomcat 7 bis 8 Migration und haben ungewöhnliches Problem: wenn nichts ändern in Config ich einen Fehler gefangen:Migration zu Tomcat 8: InstanceAlreadyExistsException Datenquelle
"2015-02-03 12:05:48,310 FIRST_ADMIN ERROR web.context.ContextLoader:331
-> Context initialization failed org.springframework.jmx.export.UnableToRegisterMBeanException:
Unable to register MBean [[email protected]]
with key 'dataSource'; nested exception is
javax.management.InstanceAlreadyExistsException:
Catalina:type=DataSource,host=localhost,context=/first-
admin,class=javax.sql.DataSource,name="jdbc/datasource/first"
Teil des Kontextes:
<Resource name="jdbc/datasource/first"
auth="Container"
type="javax.sql.DataSource"
poolPreparedStatements="true"
initialSize="25"
maxActive="100"
maxIdle="100"
minIdle="25"
username="us"
password="pa"
driverClassName="com.mysql.jdbc.Driver"
validationQuery="select 1"
testOnBorrow="true"
url="jdbc:mysql://localhost:3306/firstproject?useUnicode=true&characterEncoding=UTF-8&profileSQL=false&autoSlowLog=false&slowQueryThresholdMillis=100&autoReconnect=true"/>
So ist es Werke in tomcat 7 ohne Probleme. In Tomcat 8 ich dieses Problem in zwei Weisen lösen kann:
- Ressourcen Durch Zugabe:
singleton = "false";
- Durch das Hinzufügen von Ressourcen:
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
Wenn ich tomcat schafft Datenquelle für meine Anwendung klar zu verstehen und für jmx, aber in Tomcat 7 war es ein einzelnes Objekt, in Tomcat 8 muss es anders sein. Also meine Frage ist, warum diese Situation passiert ist? Ich konnte keine Informationen über diese Änderung in der Dokumentation finden. Und ich bin interessant, was besser ist: Erstellen Sie einzelne Datenquelle (ich denke schon) oder erstellen Sie mehrere von Factory.
Was sind die Versionen Kater 7 (von) und Kater 8 (bis)? Können Sie auch Ihre web.xml hinzufügen? Verwendet Ihre Anwendung die oben genannte Deklaration in ihrer eigenen context.xml-Datei (META-INF) - wenn ja, können Sie dies posten? Bei Verwendung einer JDBC-Ressource muss Singleton "True" sein. – swinkler