Pregunta

Estoy intentando cargar un archivo XML (UTF-8) y que lo ponga en un Jboss MQ. Al leer el archivo desde el oyente caracteres UTF-8 no se formatean correctamente sólo en el caso de Jboss (jboss- 5.1.0.GA-3) que se ejecuta en Linux.

Para un ejemplo: BORÅS se convierte a BOR¿S a instancia Linux jboss.

Cuando copio y configurar la misma instancia de JBoss para funcionar en las ventanas (SP3) que funciona perfectamente.

También tengo cambiar la configuración predeterminada en Linux mediante la inclusión de JAVA_OPTS = -Dfile.encoding = UTF-8 en .bashrc y run.sh.

dentro del Oyente JbossTextMessage.getText () viene con carácter incorrectamente especificado.

Cualquier sugerencia o soluciones?

¿Fue útil?

Solución

Finalmente pude encontrar una solución, pero la solución sigue siendo una caja negra. Si alguien tiene la respuesta a por qué se ha fallado / éxito por favor, actualice la rosca.

Solución de un vistazo: 1. capturó el contenido del archivo como un arry bytes y escribió en un archivo XML en JBoss tmp carpeta mediante FileOutputStream

  1. Al exponer en la cola de mensajes de JBoss, que utiliza la escribió explícitamente archivo XML (primera etapa) usando un FileInputStream como una matriz de bytes y pasarlo como el cuerpo del mensaje.

Ejemplo de código:

Ver : página JSP con un FormFile

Clase Controller : UploadAction.java

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
   ...........

   writeInitFile(theForm.getFile().getFileData()); // Obtain the uploaded file

   Message msg = messageHelper.createMessage( readInitFile() ); // messageHelper is a customized factory method to create Message objects. Passing the newly    
   wrote file's byte array.

   messageHelper.sendMsg(msg); // posting in the queue

   ...........
}

private void writeInitFile(byte[] fileData) throws Exception{

   File someFile = new File("/jboss-5.1.0.GA-3/test/server/default/tmp/UploadTmp.xml");  // Write the uploaded file into a temporary file in jboss/tmp folder
   FileOutputStream fos = new FileOutputStream(someFile);

   fos.write( fileData );

   fos.flush();
   fos.close();     
}

private byte[]  readInitFile() throws Exception{

   StringBuilder buyteArray=new StringBuilder();

   File someFile = new File("/jboss-5.1.0.GA-3/test/server/default/tmp/UploadTmp.xml");  // Read the Newly created file in jboss/tmp folder

   FileInputStream fstream = new FileInputStream(someFile);

   int ch;
   while( (ch = fstream.read()) != -1){
        buyteArray.append((char)ch);
   }
   fstream.close();

   return buyteArray.toString().getBytes();   // return the byte []
}

Pie Nota: creo que es algo que ver con el tipo de almacenamiento de archivos por defecto de Linux / Windows. por ejemplo: Windows por defecto:. ANSI

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top