Oracle数据库中保存 NVARCHAR2 类型数据乱码问题处理

个性开发admin 发表了文章 • 0 个评论 • 2291 次浏览 • 2018-08-13 11:52 • 来自相关话题

Jxstar-Cloud 2.2.5 版本因需要保存 越南文,把相关字段改成 nvarchar2 类型后,直接在PLSQL工具执行SQL:
 
update funall_text set prop_value_t3 = N'Đã gửi thành công' where prop_key = 'oa-appcc.text2'
 
再查询此字段数据,数据显示正确。但在 Eclipse 环境或者 Tomcat 环境执行上面的SQL,保存的就是乱码,代码示列如下:
 
public static void test2() {
String sql = "update funall_text set prop_value_t3 = N'Đã gửi thành công' where prop_key = 'oa-appcc.text2'";
_log.showDebug("........sql="+sql);

DaoParam param = _dao.createParam(sql);
_dao.update(param);
}
Eclipse 环境中显示的提示信息都能正确显示,后来改进为预编译模式,执行正确:
public static void test2() {
String sql = "update funall_text set prop_value_t3 = ? where prop_key = 'oa-appcc.text2'";
_log.showDebug("........sql="+sql);

DaoParam param = _dao.createParam(sql);
param.addNStringValue("Đã gửi thành công");
_dao.update(param);
}
不过 Jxstar自带的 ojdbc5-1.0.jar 要升级到 ojdbc6-1.0.jar , commons-dbcp-1.3.jar 要升级到 commons-dbcp-1.4.jar 否则不支持 param.addNStringValue 方式传递参数。
 
以上问题解决花费 6个小时,看来还是老啦,解决问题的速度慢了很多!
 
由于业务数据也需要存储越南文,还包括缅甸文、高棉文等,则需要把数据库字符集类型改为 UTF-8,才行,否则所有 varchar2 类型都需要改为 nvarchar2 影响太大。
 
  查看全部
Jxstar-Cloud 2.2.5 版本因需要保存 越南文,把相关字段改成 nvarchar2 类型后,直接在PLSQL工具执行SQL:
 
update funall_text set prop_value_t3 = N'Đã gửi thành công' where prop_key = 'oa-appcc.text2'
 
再查询此字段数据,数据显示正确。但在 Eclipse 环境或者 Tomcat 环境执行上面的SQL,保存的就是乱码,代码示列如下:
 
	public static void test2() {
String sql = "update funall_text set prop_value_t3 = N'Đã gửi thành công' where prop_key = 'oa-appcc.text2'";
_log.showDebug("........sql="+sql);

DaoParam param = _dao.createParam(sql);
_dao.update(param);
}

Eclipse 环境中显示的提示信息都能正确显示,后来改进为预编译模式,执行正确:
	public static void test2() {
String sql = "update funall_text set prop_value_t3 = ? where prop_key = 'oa-appcc.text2'";
_log.showDebug("........sql="+sql);

DaoParam param = _dao.createParam(sql);
param.addNStringValue("Đã gửi thành công");
_dao.update(param);
}

不过 Jxstar自带的 ojdbc5-1.0.jar 要升级到 ojdbc6-1.0.jar , commons-dbcp-1.3.jar 要升级到 commons-dbcp-1.4.jar 否则不支持 param.addNStringValue 方式传递参数。
 
以上问题解决花费 6个小时,看来还是老啦,解决问题的速度慢了很多!
 
由于业务数据也需要存储越南文,还包括缅甸文、高棉文等,则需要把数据库字符集类型改为 UTF-8,才行,否则所有 varchar2 类型都需要改为 nvarchar2 影响太大。
 
 

Weblogic环境部署Jxstar程序,更新js文件后无效

开发工具admin 发表了文章 • 0 个评论 • 1080 次浏览 • 2018-08-13 11:39 • 来自相关话题

 
weblogic 应用 eampro 的部署路径为:
D:\oracle\Middleware\user_projects\domains\base_domain\servers\eamserver2\stage\eampro\eampro但集群系统主节点应用域名为 bfda_domain ,而当前节点的应用域名为 base_domain ,造成js文件上传到上面的路径后,应用还是加载不到最新的js文件。
 
报如下错误信息:<2018-8-10 下午08时27分25秒 CST> <Error> <HTTP> <BEA-101019> <[ServletContext@48246386[app:eampro module:eampro path: spec-version:2.5]] Servlet failed with IOException
java.io.IOException: failed to read '22' bytes from InputStream; clen: 6439 remaining: 22 count: 6417
at weblogic.servlet.internal.ChunkOutput.writeStream(ChunkOutput.java:466)
at weblogic.servlet.internal.CharsetChunkOutput.writeStream(CharsetChunkOutput.java:221)
at weblogic.servlet.internal.ChunkOutputWrapper.writeStream(ChunkOutputWrapper.java:192)
at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(ServletOutputStreamImpl.java:555)
at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(ServletOutputStreamImpl.java:544)
Truncated. see log file for complete stacktrace
解决方案:
添加 WEB-INF\weblogic.xml 文件,内容如下:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app
PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls ... gt%3B
<weblogic-web-app>
<jsp-descriptor>
<page-check-seconds>0</page-check-seconds>
</jsp-descriptor>
<container-descriptor>
<resource-reload-check-secs>0</resource-reload-check-secs>
</container-descriptor>
</weblogic-web-app>
如果要实现 contextpath 为 / 则需要在上面的文件添加一行 
<context-root></context-root>
  查看全部
 
weblogic 应用 eampro 的部署路径为:
D:\oracle\Middleware\user_projects\domains\base_domain\servers\eamserver2\stage\eampro\eampro
但集群系统主节点应用域名为 bfda_domain ,而当前节点的应用域名为 base_domain ,造成js文件上传到上面的路径后,应用还是加载不到最新的js文件。
 
报如下错误信息:
<2018-8-10 下午08时27分25秒 CST> <Error> <HTTP> <BEA-101019> <[ServletContext@48246386[app:eampro module:eampro path: spec-version:2.5]] Servlet failed with IOException
java.io.IOException: failed to read '22' bytes from InputStream; clen: 6439 remaining: 22 count: 6417
at weblogic.servlet.internal.ChunkOutput.writeStream(ChunkOutput.java:466)
at weblogic.servlet.internal.CharsetChunkOutput.writeStream(CharsetChunkOutput.java:221)
at weblogic.servlet.internal.ChunkOutputWrapper.writeStream(ChunkOutputWrapper.java:192)
at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(ServletOutputStreamImpl.java:555)
at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(ServletOutputStreamImpl.java:544)
Truncated. see log file for complete stacktrace

解决方案:
添加 WEB-INF\weblogic.xml 文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app
PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls ... gt%3B
<weblogic-web-app>
<jsp-descriptor>
<page-check-seconds>0</page-check-seconds>
</jsp-descriptor>
<container-descriptor>
<resource-reload-check-secs>0</resource-reload-check-secs>
</container-descriptor>
</weblogic-web-app>

如果要实现 contextpath 为 / 则需要在上面的文件添加一行 
<context-root></context-root>
 

Jxstar 部署CXF的webservice服务端,报错 jar不一致

个性开发admin 发表了文章 • 0 个评论 • 863 次浏览 • 2018-08-09 16:37 • 来自相关话题

如果是JDK1.6版本,则需要在tomcat目录中添加endorsed目录,把jaxb-api-2.2.3.jar、jaxb-impl-2.2.4-1.jar拷贝到此目录,否则会报错tomcat不能加载应用。
Weblogic、WebSphere中部署也存在这类错误,需要拷贝两个jar文件到JDK的安装目录中。如:/jdk1.6.0_45/jre/lib/ 中添加\endorsed 目录,把前两个jar放到此目录中。
如果是其他JDK版本需要确定 jaxb 的版本号。两个jar文件在附件中。 查看全部
如果是JDK1.6版本,则需要在tomcat目录中添加endorsed目录,把jaxb-api-2.2.3.jar、jaxb-impl-2.2.4-1.jar拷贝到此目录,否则会报错tomcat不能加载应用。
Weblogic、WebSphere中部署也存在这类错误,需要拷贝两个jar文件到JDK的安装目录中。如:/jdk1.6.0_45/jre/lib/ 中添加\endorsed 目录,把前两个jar放到此目录中。
如果是其他JDK版本需要确定 jaxb 的版本号。两个jar文件在附件中。

Jxstar 数据导入事件执行前与执行后的扩展方法 dataimp

个性开发admin 发表了文章 • 0 个评论 • 961 次浏览 • 2018-06-27 10:06 • 来自相关话题

可以在 dataimp 事件的类设置中,设置如下的类:
/*
* Copyright(c) 2017 DongHong Inc.
*/
package com.jxstar.demo.eam;

import java.util.List;
import java.util.Map;

import org.jxstar.control.action.RequestContext;
import org.jxstar.service.BusinessObject;
import org.jxstar.util.ArrayUtil;
import org.jxstar.util.JsonUtil;

/**
* 数据导入扩展测试类。
* 注册在数据导入事件“dataimp”的类设置中。
*
* @author TonyTan
* @version 1.0, 2017-6-10
*/
public class DataImpExtBO extends BusinessObject {
private static final long serialVersionUID = 1L;

/**
* 导入前的判断
* @param request
* @return
*/
public String preImp(RequestContext request) {
String srcFunId = request.getFunID();
//目标功能ID
String destFunId = request.getRequestValue("destfunid");
//其他参数有: keyid 选择记录主键数组、parentId 父记录ID
String[] keyids = request.getRequestValues("keyid");
String forKeyId = request.getRequestValue("parentId");

_log.showDebug("..............导入前事情,相关参数:");
_log.showDebug("..............来源功能ID:"+srcFunId);
_log.showDebug("..............目标功能ID:"+destFunId);
_log.showDebug("..............选择记录主键:"+ArrayUtil.arrayToString(keyids));
_log.showDebug("..............目标功能外键:"+forKeyId);

//判断示列效果
if (keyids.length > 2) {
setMessage("不能同时选择2条以上记录导入!");
return _returnFaild;
}

return _returnSuccess;
}

/**
* 导入后的扩展
* @param request
* @return
*/
public String postImp(RequestContext request) {
//格式如:[{impKeyId:"xxxx", newKeyId:"xxxx"}, {impKeyId:"xxxx", newKeyId:"xxxx"}]
String json = request.getReturnData();
_log.showDebug("..............新建主键对照:"+json);

List<Map<String,String>> lsData = JsonUtil.json2list(json);
_log.showDebug("..............解析后的数据:"+lsData);

return _returnSuccess;
}
} 查看全部
可以在 dataimp 事件的类设置中,设置如下的类:
/*
* Copyright(c) 2017 DongHong Inc.
*/
package com.jxstar.demo.eam;

import java.util.List;
import java.util.Map;

import org.jxstar.control.action.RequestContext;
import org.jxstar.service.BusinessObject;
import org.jxstar.util.ArrayUtil;
import org.jxstar.util.JsonUtil;

/**
* 数据导入扩展测试类。
* 注册在数据导入事件“dataimp”的类设置中。
*
* @author TonyTan
* @version 1.0, 2017-6-10
*/
public class DataImpExtBO extends BusinessObject {
private static final long serialVersionUID = 1L;

/**
* 导入前的判断
* @param request
* @return
*/
public String preImp(RequestContext request) {
String srcFunId = request.getFunID();
//目标功能ID
String destFunId = request.getRequestValue("destfunid");
//其他参数有: keyid 选择记录主键数组、parentId 父记录ID
String[] keyids = request.getRequestValues("keyid");
String forKeyId = request.getRequestValue("parentId");

_log.showDebug("..............导入前事情,相关参数:");
_log.showDebug("..............来源功能ID:"+srcFunId);
_log.showDebug("..............目标功能ID:"+destFunId);
_log.showDebug("..............选择记录主键:"+ArrayUtil.arrayToString(keyids));
_log.showDebug("..............目标功能外键:"+forKeyId);

//判断示列效果
if (keyids.length > 2) {
setMessage("不能同时选择2条以上记录导入!");
return _returnFaild;
}

return _returnSuccess;
}

/**
* 导入后的扩展
* @param request
* @return
*/
public String postImp(RequestContext request) {
//格式如:[{impKeyId:"xxxx", newKeyId:"xxxx"}, {impKeyId:"xxxx", newKeyId:"xxxx"}]
String json = request.getReturnData();
_log.showDebug("..............新建主键对照:"+json);

List<Map<String,String>> lsData = JsonUtil.json2list(json);
_log.showDebug("..............解析后的数据:"+lsData);

return _returnSuccess;
}
}

mui在android5中,webview网页中的input没法聚焦的问题

移动开发admin 发表了文章 • 0 个评论 • 1007 次浏览 • 2018-06-26 11:37 • 来自相关话题

通过下面方法可以解决:var ws = plus.android.currentWebview();
plus.android.invoke(ws, "requestFocus");
document.getElementById("device_code").focus();
 
或者更安全的方法:function plusReady(){
var ws = plus.android.currentWebview();
plus.android.invoke(ws, "requestFocus");
setTimeout(function(){
document.getElementById("device_code").focus();
}, 500);
}
if(window.plus){
plusReady();
}else{
document.addEventListener('plusready', plusReady, false);
} 查看全部
通过下面方法可以解决:
var ws = plus.android.currentWebview();
plus.android.invoke(ws, "requestFocus");
document.getElementById("device_code").focus();

 
或者更安全的方法:
function plusReady(){
var ws = plus.android.currentWebview();
plus.android.invoke(ws, "requestFocus");
setTimeout(function(){
document.getElementById("device_code").focus();
}, 500);
}
if(window.plus){
plusReady();
}else{
document.addEventListener('plusready', plusReady, false);
}

配置表格列显示平均值

开发工具admin 发表了文章 • 0 个评论 • 971 次浏览 • 2018-06-15 09:32 • 来自相关话题

需要显示平均值的表格字段列需要勾选“统计”,然后INC中需要添加需要算平均列的字段名称,格式如下:
 
config.param.average_fields = ['store_indet__in_num','store_mat__mat_price','store_indet__in_money'];
 
效果如下:
 





 
如果没有效果就需要更新最新的文件:public\core\JxSum.js
  查看全部
需要显示平均值的表格字段列需要勾选“统计”,然后INC中需要添加需要算平均列的字段名称,格式如下:
 
config.param.average_fields = ['store_indet__in_num','store_mat__mat_price','store_indet__in_money'];
 
效果如下:
 

a.png

 
如果没有效果就需要更新最新的文件:public\core\JxSum.js
 

配置阿里云服务的HTTPS

系统设置admin 发表了文章 • 0 个评论 • 802 次浏览 • 2018-06-08 14:54 • 来自相关话题

最近玩微信小程序,需要一个 https://www.jxstar.com 网站,所以从阿里云申请了一个免费证书:
 
参考这个文档购买免费证书:
 
https://blog.csdn.net/cslucifer/article/details/79077831
 
参考这个文档配置证书:
 
https://mp.weixin.qq.com/s/Tw4UzX73Q7MSw3GJXnpN8A
 
本人的Apache配置好后,死活启动不成功,最后处理下面的后搞定:
 
在httpd.conf文件中去掉 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 前面的#
 
 
  查看全部
最近玩微信小程序,需要一个 https://www.jxstar.com 网站,所以从阿里云申请了一个免费证书:
 
参考这个文档购买免费证书:
 
https://blog.csdn.net/cslucifer/article/details/79077831
 
参考这个文档配置证书:
 
https://mp.weixin.qq.com/s/Tw4UzX73Q7MSw3GJXnpN8A
 
本人的Apache配置好后,死活启动不成功,最后处理下面的后搞定:
 
在httpd.conf文件中去掉 LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 前面的#
 
 
 

调整CMD命令窗口显示UTF8字符集,或者调整Tomcat后台显示UTF8

系统设置admin 发表了文章 • 0 个评论 • 1358 次浏览 • 2018-05-24 14:15 • 来自相关话题

最近java程序要显示越南文,为了方便调试,tomcat后台需要显示越南文,通过把cmd窗口显示的字符集改为utf8就可以了。
步骤如下:
1、打开 cmd 命令窗口;输入命令: chcp 65001 回车;
2、然后 选择窗口标题栏右键菜单,点击字体,选择:Lucida Console ,确定;
3、这样cmd窗口是显示 utf8 字符集,右键标题属性,可以看到字符;但开源tomcat时后台输出为乱码了;
4、需要添加系统变量:JAVA_TOOL_OPTIONS 设置值为 -Dfile.encoding=UTF-8 ;设置jvm在utf8模式下执行;
     再打开tomcat就不会乱码了,
     后台也可以正常显示汉字与越南文;
     如果还有问题,可以通过在 cmd窗口启动tomcat,如:cd c:\d\tomcat6\bin 回车, 再输入命令       startup.bat run 这样保证tomcat在当前cmd窗口中启动了。
 
补充说明:
CMD命令窗口字符集修改也可以通过修改注册表配置信息完成,如:





双击,选择十进制,输入:936 ,则为GBK;65001 ,则为UTF8
  查看全部
最近java程序要显示越南文,为了方便调试,tomcat后台需要显示越南文,通过把cmd窗口显示的字符集改为utf8就可以了。
步骤如下:
1、打开 cmd 命令窗口;输入命令: chcp 65001 回车;
2、然后 选择窗口标题栏右键菜单,点击字体,选择:Lucida Console ,确定;
3、这样cmd窗口是显示 utf8 字符集,右键标题属性,可以看到字符;但开源tomcat时后台输出为乱码了;
4、需要添加系统变量:JAVA_TOOL_OPTIONS 设置值为 -Dfile.encoding=UTF-8 ;设置jvm在utf8模式下执行;
     再打开tomcat就不会乱码了,
     后台也可以正常显示汉字与越南文;
     如果还有问题,可以通过在 cmd窗口启动tomcat,如:cd c:\d\tomcat6\bin 回车, 再输入命令       startup.bat run 这样保证tomcat在当前cmd窗口中启动了。
 
补充说明:
CMD命令窗口字符集修改也可以通过修改注册表配置信息完成,如:

字符集.png

双击,选择十进制,输入:936 ,则为GBK;65001 ,则为UTF8
 

JDK 1.6 官方下载地址,含64位下载

开发工具admin 发表了文章 • 0 个评论 • 1064 次浏览 • 2018-05-19 09:03 • 来自相关话题

最新的版本为jdk1.6.0_45


Java SE Development Kit 6u45 查看全部
最新的版本为jdk1.6.0_45


Java SE Development Kit 6u45

Jxstar平台集成-数据透视表-PivotGrid-的效果

个性开发admin 发表了文章 • 0 个评论 • 1762 次浏览 • 2018-05-12 18:20 • 来自相关话题

在功能设计器“事件注册”中导入事件“数据透视表”,在更多菜单点击此事件。





弹出下面的配置界面,需要设置好行标签、列标签、数值列,添加用拖拽的方式从左边字段栏拖到右边;取消右边字段可以双击。





常用数据透视方案可以保存。点击统计后输出效果如下:





点击右上角的导出按钮,可以导出:带透视表的Excel(Sheet2是源数据)、Excel数据、Html数据。















  查看全部
在功能设计器“事件注册”中导入事件“数据透视表”,在更多菜单点击此事件。

a.png

弹出下面的配置界面,需要设置好行标签、列标签、数值列,添加用拖拽的方式从左边字段栏拖到右边;取消右边字段可以双击。

b.png

常用数据透视方案可以保存。点击统计后输出效果如下:

c.png

点击右上角的导出按钮,可以导出:带透视表的Excel(Sheet2是源数据)、Excel数据、Html数据。

d.png


e.png


f.png