Wie Sie festlegen, JPA EntityManagerFactory für die Persistenz-unit NICHT auf 'default'

Noramlly alle Standard-Konfigurationen von Spring-boot sind völlig in Ordnung. Nun brauche ich aber für die Bereitstellung der Anwendung auf einem Weblogic-12.2-Server, und ich bin vor einige Probleme in Bezug auf die Persistenz.

Ich mich nur gefragt, wie die JPA EntityManagerFactory für die Persistenz-unit NICHT auf 'default'. Denn durch Start der Anwendung sehen kann ich diese logs:

2017-05-23 08:16:34.608  INFO 30827 - j.LocalContainerEntityManagerFactoryBean []: Building JPA container EntityManagerFactory for persistence unit 'default'
2017-05-23 08:16:35.090  INFO 30827 - o.hibernate.jpa.internal.util.LogHelper  []: HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2017-05-23 08:16:36.025  INFO 30827 - org.hibernate.Version                    []: HHH000412: Hibernate Core {5.0.11.Final}
2017-05-23 08:16:36.026  INFO 30827 - org.hibernate.cfg.Environment            []: HHH000206: hibernate.properties not found
2017-05-23 08:16:36.029  INFO 30827 - org.hibernate.cfg.Environment            []: HHH000021: Bytecode provider name : javassist
2017-05-23 08:16:36.925  INFO 30827 - o.hibernate.annotations.common.Version   []: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2017-05-23 08:16:39.632  INFO 30827 - org.hibernate.dialect.Dialect            []: HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
2017-05-23 08:16:48.205  INFO 30827 - j.LocalContainerEntityManagerFactoryBean []: Initialized JPA EntityManagerFactory for persistence unit 'default'
2017-05-23 08:16:55.348  INFO 30827 - o.h.h.i.QueryTranslatorFactoryInitiator  []: HHH000397: Using ASTQueryTranslatorFactory

So, ich bin nicht sicher, wenn der weblogic-ist die Verwendung der Standard persistence unit (eclipselink) oder wirklich überwintern. So war ich denken, um die persistenzeinheit ausdrücklich irgendwo in meinem spring-boot Anwendung.

Gibt es eine Möglichkeit, um den Ruhezustand als Standard-Einheit explicit?

EDIT:

Wurde ich auch gefragt, bevor ich da eine Ausnahme von der Laufzeit. Die org.eclipse.persistence Bibliotheken verwendet werden, für das unmarshalling von xml.

Caused by: org.eclipse.persistence.exceptions.DescriptorException: 
Exception Description: No conversion value provided for the value [ToConfirm] in field [@SubStatus].
Mapping: org.eclipse.persistence.oxm.mappings.XMLDirectMapping[subStatus-->@SubStatus]
Descriptor: XMLDescriptor(at.myCompany.bookingHubClient.schema.BookingHubUserTypes.BookResponse --> [DatabaseTable(BookResponse)])
    at org.eclipse.persistence.exceptions.DescriptorException.noFieldValueConversionToAttributeValueProvided(DescriptorException.java:1066)
    at org.eclipse.persistence.mappings.converters.ObjectTypeConverter.convertDataValueToObjectValue(ObjectTypeConverter.java:226)
    at org.eclipse.persistence.jaxb.JAXBEnumTypeConverter.convertDataValueToObjectValue(JAXBEnumTypeConverter.java:119)
    at org.eclipse.persistence.oxm.mappings.XMLDirectMapping.convertDataValueToObjectValue(XMLDirectMapping.java:528)
    at org.eclipse.persistence.oxm.mappings.XMLDirectMapping.getAttributeValue(XMLDirectMapping.java:296)
    at org.eclipse.persistence.oxm.mappings.XMLDirectMapping.getAttributeValue(XMLDirectMapping.java:1)
    at org.eclipse.persistence.internal.oxm.XMLDirectMappingNodeValue.attribute(XMLDirectMappingNodeValue.java:169)
    at org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl.startElement(UnmarshalRecordImpl.java:922)
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshallerHandler.startElement(SAXUnmarshallerHandler.java:373)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:380)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:614)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3135)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:880)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
    at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
    at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173)
    at org.eclipse.persistence.internal.oxm.record.XMLReader.parse(XMLReader.java:243)
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:401)
    at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:654)
    at org.eclipse.persistence.internal.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:581)
    at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:323)
    at org.glassfish.jersey.jaxb.internal.XmlRootElementJaxbProvider.readFrom(XmlRootElementJaxbProvider.java:140)
    at org.glassfish.jersey.jaxb.internal.AbstractRootElementJaxbProvider.readFrom(AbstractRootElementJaxbProvider.java:134)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235)
    at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)
    at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1085)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:852)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:786)
    at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326)
    at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:115)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:419)
    at org.glassfish.jersey.client.InboundJaxrsResponse.runInScopeIfPossible(InboundJaxrsResponse.java:267)
    at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:112)
    at at.myCompany.bookingHubClient.client.RestClient.doWSCallBook(RestClient.java:85)
    at at.myCompany.thirdPartyBookingService.service.impl.hotel.BookResponseServiceImpl.getBookResponse(BookResponseServiceImpl.java:36)
    ... 78 common frames omitted

Sicher, dass ich dort sehe, ist eine Konvertierung Problem, aber auf tomcat läuft und ich das nicht mit jedem eclipse Bibliotheken. So bedeutet jede Bibliothek von weblogic überschreiben, mine.

Die Ausnahme aufgetreten ist bei dieser Linie:

 javax.ws.rs.core.Response bookResponse = response.readEntity(BookResponse.class);

Jede Idee, um die app wieder zum laufen?

Dies ist mein weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
        http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
    <wls:context-root>/third-party-booking-service</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
            <wls:package-name>com.google.common.*</wls:package-name>
            <wls:package-name>javax.annotation.*</wls:package-name>
            <wls:package-name>com.sun.jersey.*</wls:package-name>
            <wls:package-name>org.codehaus.jackson.jaxrs.*</wls:package-name>
            <wls:package-name>org.jboss.logging.*</wls:package-name>
            <wls:package-name>org.hibernate.*</wls:package-name>
            <wls:package-name>com.fasterxml.*</wls:package-name>
            <wls:package-name>org.glassfish.jersey.jaxb.*</wls:package-name>
            <wls:package-name>antlr.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>
Wie Sie sehen können von Ihrem anmelden hibernate nutzt. Es ist auch nur eine Bezeichnung der Einheit verwenden (die Sie normalerweise geben Sie in der persistence.xml es hat nichts zu tun mit dem, was verwendet wird).
danke für den Kommentar. Ich fragte Sie, bevor Sie beause einige von eclipse.Persistenz-Bibliotheken verwendet. Ich bearbeitet meine Frage. Vielleicht haben Sie eine Idee.
Aber das ist etwas ganz anderes (und Sie nicht beheben, indem Sie eine andere Einheit name). Sie sind mit JAX-RS und Sie sind wahrscheinlich nicht die Versandkosten, die mit Ihrer Anwendung. Damit Ihre app wird die Verwendung der JAX-RS-libs aus dem container, die nicht sehen können Ihre hibernate-Klassen (unterschiedliche class loader) und somit mit der Standard-eclipse-Klassen. Ich schlage vor, explizit konfigurieren, jax-rs und Sie wollen wahrscheinlich schalten die Klasse be-die Eltern-last (oder was auch immer das genannt wird WebLogic).

InformationsquelleAutor Patrick | 2017-05-23

Schreibe einen Kommentar