2017-07-13 13 views
-2

(Bitte beachten Sie:. Wenn nicht angebracht, hier zu posten, dankbar, wenn die Hilfe-Administrator, es zu entfernen Dank)das Programm funktioniert in Windows Server 2008 R2 funktioniert aber nicht in Windows Server 2012 r2

Hintergrund: Es gibt Eine Anwendung, die auf Tomcat 8 in Windows Server 2008 R2 bereitgestellt wird. Derzeit läuft der Server und die Anwendung wird ordnungsgemäß ausgeführt. Der Teamleiter sagte uns, dass die Anwendung von einem Programmierer geschrieben wurde, der das Unternehmen bereits vor zwei Jahren verlassen hat. Das Programm hat keine Codeänderungen nach dem Rücktritt des Programmierers.

Aus einigen Gründen müssen wir Windows Server 2008 R2 auf Windows Server 2012 R2 umstellen (upgraden).

Die Anwendung benötigt Java 1.7 und Tomcat 8 zu laufen, also installierten wir diese Software in Windows Server 2012 R2.

Wir kopieren die WAR-Datei von Windows Server 2008 r2 und fügen Sie in Windows Server 2012 R2. Nach dem Kopieren und Einfügen der WAR-Datei stellen wir die WAR-Datei in Tomcat Web Application Manager bereit (dieselbe Aktion in Windows Server 2008 R2).

Sobald wir die WAR-Datei bereitstellen, versuchen wir, die Anwendung zu starten. Wenn wir jedoch auf die Schaltfläche "Start" klicken, warten wir eine Weile und die Tomcat-Nachricht zeigt "FAIL - Anwendung bei Kontextpfad/Pfadname konnte nicht gestartet werden".

Wir haben die Softwareversion überprüft, und sie sind die gleichen wie in Windows Server 2008 R2.

Wir sind verwirrt über die Nachricht, weil die WAR-Datei im Windows Server 2008 R2 funktioniert.

Wir überprüfen die localhost.2017-07-13.log Datei und wir bemerken, dass es einige Ausnahmen gibt. Wir möchten den Inhalt des Protokolls hier veröffentlichen.

13-Jul-2017 15:00:42.464 INFO [http-nio-8080-exec-8] 
org.apache.catalina.core.ApplicationContext.log Initializing Spring root 
WebApplicationContext 
13-Jul-2017 15:00:43.214 SEVERE [http-nio-8080-exec-8] 
org.apache.catalina.core.StandardContext.listenerStart Exception sending 
context initialized event to listener instance of class 
org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'dataSource' defined in ServletContext resource [/WEB- 
INF/applicationContext.xml]: Error setting property values; nested exception 
is org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are: 
PropertyAccessException 1: 
org.springframework.beans.MethodInvocationException: Property 
'driverClassName' threw exception; nested exception is 
java.lang.IllegalStateException: Could not load JDBC driver class 
[net.sourceforge.jtds.jdbc.Driver] 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.app 
lyPropertyValues(AbstractAutowireCapableBeanFactory.java:1279) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.pop 
ulateBean(AbstractAutowireCapableBeanFactory.java:1010) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doC 
reateBean(AbstractAutowireCapableBeanFactory.java:472) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.r 
un(AbstractAutowireCapableBeanFactory.java:409) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.cre 
ateBean(AbstractAutowireCapableBeanFactory.java:380) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(Abstra 
ctBeanFactory.java:264) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingle 
ton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(Abstract 
BeanFactory.java:261) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe 
anFactory.java:185) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBe 
anFactory.java:164) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstanti 
ateSingletons(DefaultListableBeanFactory.java:429) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactory 
Initialization(AbstractApplicationContext.java:728) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractA 
pplicationContext.java:380) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(Contex 
tLoader.java:244) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextL 
oader.java:187) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(Context 
LoaderListener.java:49) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4729 
) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167 
) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:945) 
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:466) 
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1556) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) 
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown Source) 
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source) 
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460) 
at org.apache.catalina.manager.HTMLManagerServlet.upload(HTMLManagerServlet.java:289) 
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:210) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested 
PropertyAccessExceptions (1) are: 
PropertyAccessException 1: 
org.springframework.beans.MethodInvocationException: Property 
'driverClassName' threw exception; nested exception is 
java.lang.IllegalStateException: Could not load JDBC driver class 
[net.sourceforge.jtds.jdbc.Driver] 
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPro 
pertyAccessor.java:104) 
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPro 
pertyAccessor.java:59) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.app 
lyPropertyValues(AbstractAutowireCapableBeanFactory.java:1276) 
... 64 more 

Wir verstehen nicht, warum ist in Windows Server 2008 R2 das Programm funktioniert, aber es in Windows Server 2012 r2 funktioniert nicht?

Derzeit finden wir immer noch den Quellcode des Programms, aber aus der Protokolldatei, erwähnt es über [/WEB-INF/applicationContext.xml] und [net.sourceforge.jtds.jdbc.Driver], raten wir wann Wir bekommen den Quellcode, wir müssen die XML-Datei und den Treiber finden, stimmt das?

Dankbar für Ihre Beratung bitte. Vielen Dank.

bearbeiten

Wir den Quellcode finden einfach und wir öffnen die applicationContext.xml und es gibt eine Bohne für net.sourceforge.jtds.jdbc.Driver. Nicht sicher, warum es in Windows Server 2012 R2 nicht funktioniert.

Hier Code ist:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
         http://www.springframework.org/schema/tx 
         http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
         http://www.springframework.org/schema/aop 
         http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 
         http://www.springframework.org/schema/jee 
         http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"> 

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" /> 


    <property name="url" value="jdbc:jtds:sqlserver://{host}:1433;DatabaseName=myDB" /> 

    <property name="username" value="user" /> 
    <property name="password" value="Password" /> 
</bean> 

</beans> 
+0

Warum haben Sie die Frage reguardin Win Server 2008/2012 mit * SQL * Server Tags versehen? – sepupic

+0

@sepupic, danke deinen Kommentar. Wir haben die Tags für den Post aktualisiert. – beginner

+0

immer noch sql server und nicht windows server – sepupic

Antwort

1

Sie sagen (Hervorhebung von mir)

Die Anwendung erfordert Java 1.7 und Tomcat 8 zu laufen, so dass wir installiert jene Software in Windows Server 2012 r2.

Wir Kopieren Sie den Krieg Datei von Windows Server 2008 R2 und fügen Sie in Windows Server 2012 r2.Nach dem Kopieren und Einfügen der WAR-Datei wird die WAR-Datei im Tomcat-Webanwendungsmanager bereitgestellt (dieselbe Aktion in Windows Server 2008 R2).

Die Fehlermeldung sagt

java.lang.IllegalStateException: Konnte nicht JDBC-Treiber Klasse laden [net.sourceforge.jtds.jdbc.Driver]

Mittel: Sie haben nicht ausreichend die ursprüngliche Implementierung reproduzieren. Da Sie vielleicht mehr als nur diesen Treiber vermissen (es könnte einfach der erste sein, der versagt), schlage ich einen vollständigen Unterschied zwischen beiden Verzeichnissen vor. Finden Sie heraus, was in beiden Installationen bereitgestellt wird.

Hinweis: Tomcat verfügt in seinem Verzeichnis lib über einen globalen Klassenpfad, der Code enthält, den jede Webanwendung verwenden kann.

+0

Hallo @Olaf Kock, danke für deine Antwort. Mein Kollege und ich extrahieren die WAR-Datei von Windows Server 2008 R2 und dann verwenden wir WinMerge-Software, um Unterschiede zu finden. Diese Dateien sind gleich. keine fehlenden oder keine zusätzlichen Dateien. Über den globalen Klassenpfad des Tomcat vergleichen wir es, aber die Lib ist die gleiche. Wir sind immer noch nicht sicher, warum die War-Datei nicht funktioniert, aber wenn wir das jtsd-jar in die lib stellen und den Krieg erneut erstellen und auf Tomcat bereitstellen. Die Anwendung funktioniert jetzt. – beginner

Verwandte Themen