2016-06-15 4 views

Antwort

0

Schließlich fanden wir, dass Problem nicht mit JPA nativen Abfrage ist aber mit JAXB Unmarshalling.

Nachdem wir Blob als String aus der Abfrage gelesen haben, versuchen wir, das XML direkt zu entpacken, indem wir die konvertierte Zeichenkette von Blob verwenden, anstatt das Byte-Array direkt zu übergeben.

Unten ist die Lösung für das Problem.

public static Object unMarshaller(JAXBContext jc,byte[] byteArr) throws JAXBException{ 
     Unmarshaller u = jc.createUnmarshaller(); 
     ByteArrayInputStream bais = new ByteArrayInputStream(byteArr); 
     u.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler()); 
     Source input = new StreamSource(bais); 
     return u.unmarshal(input); 
    } 
0

Ich denke, Ihr Standard-System-Codierung ist nicht UTF-8 - Sie dies für Ihre durch das Setzen eines System-Eigenschaft Java-Prozess ändern können:

-Dfile.encoding=UTF-8 

Eine weitere Möglichkeit besteht darin, dass Sie die Codierung hinzufügen müssen auf Ihren DB-Anschluss-String
für MySQL würde dies

sein
jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8 
+0

Danke Halko für Ihre Unterstützung. Ich habe die Systemeigenschaft in meiner jboss standalone.xml hinzugefügt, aber immer noch das gleiche Problem. – phanigo

Verwandte Themen