Wir versuchen, Spring-Boot-Embedded-Server für die Entwicklung und Weblogic für die Produktion zu verwenden. Scheint so, als ob dies einfach sein sollte, da eine WAR-Datei einfach zu erstellen ist und in jedem Container funktionieren sollte - genau wie das Java-Mantra von einmal schreiben, irgendwo laufen. Bisher war ein großer Schmerz und nicht sicher, dass es wirklich möglich ist.Spring Boot in WebLogic
Wenn jemand etwas Einblick hat, würde ich lieben, von Ihnen zu hören.
Ich habe eine schreckliche Zeit zu versuchen, eine Spring-Boot-App in einem Web-Logik-Container zu arbeiten. Weblogic 12.2.1 (Hinweis: Dies ist die neueste Version von Weblogic)
Ausgabe 1 - aus irgendeinem Grunde Web-Logik will die JerseyServletContainerInitializer laden. Dies verursacht eine Klasse nicht gefunden Ausnahme und kann nicht weiter kommen. Meine Kludis, schreibe einen neuen JerseyServletContainerInitializer (mit dem richtigen Paket) und mit meinem Code bereitstellen. bringt mich an der Klasse nicht gefunden Problem in Federcode.
Ausgabe 2 - slf4j findet mehrere Implementierungen - das extra ein von WebLogic ist, die (andere Anwendungen auf dem Server verwenden sie) nicht entfernt werden kann, aber das ist die einzige Lösung nach SLF4J. Nicht um alles hilfreich.
Ausgabe 3 - Weblogic bietet mehrere persistente Anbieter, die Frühling scheint zu finden und zu versuchen und die Eclipse-Persistenz Provider eher als die den Winterschlaf Provider zuordnen. (Wir verwenden keine Persistenz.xml). dies führt zu java.lang.ClassCastException: org.eclipse.persistence.jpa.PersistenceProvider nicht javax.persistence.spi.PersistenceProvider
gegossen werden kann
Caused by: java.lang.ClassCastException: org.eclipse.persistence.jpa.PersistenceProvider cannot be cast to javax.persistence.spi.PersistenceProvider
at javax.persistence.Persistence$1.isLoaded(Persistence.java:110)
at org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:46)
at org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:128)
at org.hibernate.validator.internal.engine.resolver.CachingTraversableResolverForSingleValidation.isReachable(CachingTraversableResolverForSingleValidation.java:36)
at org.hibernate.validator.internal.engine.ValidatorImpl.isReachable(ValidatorImpl.java:1612)
at org.hibernate.validator.internal.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:1597)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:609)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:580)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:524)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:492)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:457)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:407)
at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:205)
at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:92)
at org.springframework.validation.DataBinder.validate(DataBinder.java:852)
at org.springframework.boot.bind.PropertiesConfigurationFactory.validate(PropertiesConfigurationFactory.java:350)
at org.springframework.boot.bind.PropertiesConfigurationFactory.doBindPropertiesToTarget(PropertiesConfigurationFactory.java:271)
at org.springframework.boot.bind.PropertiesConfigurationFactory.bindPropertiesToTarget(PropertiesConfigurationFactory.java:241)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java: 334)
at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java: 289)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
Mein weblogic.xml sieht aus wie
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd „>
<wls:weblogic-version>12.1.3</wls:weblogic-version> <wls:context-root>ola/</wls:context-root> <wls:container-descriptor> <wls:prefer-web-inf-classes>false</wls:prefer-web-inf-classes> <wls:prefer-application-packages> <wls:package-name>javax.persistence.*</wls:package-name> <wls:package-name>org.glassfish.*</wls:package-name> <wls:package-name>antlr.*</wls:package-name> <wls:package-name>org.slf4j.*</wls:package-name> <wls:package-name>org.hibernate.*</wls:package-name> <wls:package-name>javassist.*</wls:package-name> <wls:package-name>org.springframework.*</wls:package-name> <wls:package-name>com.sun.research.*</wls:package-name> <wls:package-name>javax.annotation.*</wls:package-name> <wls:package-name>org.jvnet.hk2.*</wls:package-name> <wls:package-name>org.jvnet.tiger_types.*</wls:package-name> </wls:prefer-application-packages> </wls:container-descriptor>
Ich versuche nicht, eine web.xml zu verwenden.
Meine Hauptklasse ist
package com.cc.ola.launch;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableMBeanExport;
import org.springframework.context.annotation.Profile;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.WebApplicationInitializer;
@Profile("test")
@Configuration
@SpringBootApplication(scanBasePackages = "com.cc")
@EntityScan(basePackages = "com.cc.ola")
@EnableJpaRepositories(basePackages = { "com.cc.ola" })
@EnableCaching
@EnableJms
@EnableMBeanExport
@EnableTransactionManagement
@EnableWebSecurity
@EnableGlobalMethodSecurity(jsr250Enabled = true, prePostEnabled = true)
public class LaunchFromWebLogic extends SpringBootServletInitializer implements WebApplicationInitializer {
@Override
protected SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
System.out.println("loading spring application");
return application.sources(LaunchFromWebLogic.class);
}
}
ich all die Dokumente gelesen habe kann ich Dutzende Male finden.
Ich habe den Beispielcode versucht @https://github.com/DISID/disid-proofs.git setzt, die aber nicht funktioniert entweder
Hat Ihre Hauptklasse WebApplicatioinitializee implementiert. Beispiel wird wie öffentliche Klasse sein Anwendung erweitert SpringBootServletInitializer implementiert WebApplicationInitializer {} – rajadilipkolli
Ich denke, Sie haben [das Dokument] überprüft (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto- weblogic) schon? –