Я писал java-клиент с библиотекой классов jolt, соединяющейся с смокингом, когда без i18n это работало на отлично.Но так как я включил i18n, он сломался.Вот что я сделал в клиенте:
/* jolt.jar, jolti18n.jar, joltjse.jar, are all included in the classpath */
System.setProperty("bea.jolt.encoding", "GBK"); // without this line, everything is good.
JoltSessionAttributes sattr = new JoltSessionAttributes();
sattr.setString(JoltSessionAttributes.APPADDRESS, host);
sattr.setInt(JoltSessionAttributes.IDLETIMEOUT, 300);
sattr.setInt(JoltSessionAttributes.SENDTIMEOUT, 10);
JoltSession session = new JoltSession(sattr, null, null, null, null);
JoltRemoteService rservice = new JoltRemoteService("QAM_CBS1_L1SVC", session); // Here throws the bea.jolt.ServiceException
/* some parameter setting here that doesn't concern */
rservice.call(null);
System.out.println(rservice.getOutputs());
Это исключение, которое я получил:
Exception in thread "AWT-EventQueue-0" bea.jolt.ServiceException: Service is not available:QAM_CBS1_L1SVC
at bea.jolt.JoltRemoteService.init(JoltRemoteService.java:146)
at bea.jolt.JoltRemoteService.<init>(JoltRemoteService.java:102)
at com.wonderland.yang.util.ServiceCaller.call(ServiceCaller.java:23)
at com.wonderland.yang.MyGUI.submit(MyGUI.java:293)
...
Я могу быть уверен, что сервер смокинга поддерживает i18n («GBK»)как кодировка), так как мы уже подключили к нему WebLogicserver, и он прекрасно отвечает китайскими иероглифами.Вариант виртуальной машины WebLogic:
-Dbea.jolt.encoding = GBK
Я провел небольшое исследование, и все, что я мог найти о jolt + i18n, это:
- Включите jolti18n.jar или даже joltjse.jar в путь к классам в клиенте.
- Установите кодировку в клиенте.
- Убедитесь, что смокингСервер включил поддержку i18n.
Я сделал все вышеперечисленное.Пожалуйста, помогите.