Oracle EBS JSP实现QRCode二维条码

匿名 (未验证) 提交于 2019-12-03 00:26:01

需求背景

Tomcat WebPCJSPPCPC

业务需求

XMLOracle Report BuilderJSPOracle EBS

前提条件

VI

QR Code:

Oracle EBS

JSP QR Code

实现原理

利用JSPJava

JSP

:

<%@ page   language="java"   import="java.util.*"   import = "java.awt.*"   import = "java.awt.Graphics2D"   import = "java.awt.image.BufferedImage"   import = "javax.imageio.*"   import = "com.swetake.util.Qrcode" %> <% Qrcode qrcode=new Qrcode(); //获得条码字符串参数 String barCode=request.getParameter("BARCODE")==null?"No String,Please check!":request.getParameter("BARCODE"); barCode=new String(barCode.getBytes("iso-8859-1"),"utf-8"); //解决中文乱码问题 qrcode.setQrcodeErrorCorrect('S');//纠错级别(L 7%、M 15%、Q 25%、H 30%)和版本有关   qrcode.setQrcodeEncodeMode('B'); //N代表数字,A代表a-Z,B代表其它字符 。若条码字符串包含中文,则必须为B qrcode.setQrcodeVersion(3); //设置Qrcode包的版本   // int size=8; //设置下偏移量,如果不加偏移量,有时会导致出错。   int pixoff = 2;   String barString = barCode; byte[] d =barString.getBytes("UTF-8"); BufferedImage bi = new BufferedImage(size*29+3, size*29+3, BufferedImage.TYPE_BYTE_GRAY); Graphics2D g = bi.createGraphics(); g.setBackground(Color.WHITE); g.clearRect(0, 0, size*29+3, size*29+3); g.setColor(Color.BLACK); if (d.length>0 && d.length <43){   boolean[][] b = qrcode.calQrcode(d);   for (int i=0;i<b.length;i++){     for (int j=0;j<b.length;j++){      if (b[j][i]) {        g.fillRect(j*size+pixoff,i*size+pixoff,size,size);      }     }   } } g.dispose(); bi.flush(); out.clear(); ServletOutputStream responseOutputStream=response.getOutputStream(); ImageIO.write(bi,"png",responseOutputStream);//生成图片文件流 responseOutputStream.flush(); responseOutputStream.close(); bi=null; g=null; qrcode=null; d=null; barString=null;	 %>

程序部署

Qrcode包部署

Qrcode.jar$JAVA_TOP/gobao:Oracle EBS

$IAS_ORACLE_HOME/Apache/Jserv/etc/目录jserv.propertieswrapper.classpath=<QRCode.jar>AutoConfig


JSP

gbqrcode.jsp$OA_HTML/gobao:Oracle EBS

Oracle EBSJSP:perl $JTF_TOP/admin/scripts/ojspCompile.pl --compile -s gbqrcode.jsp


$COMMON_TOP/_pages/_oa__html/_gobao/_gbqrcode.classjsp

异常问题处理

JSP执行错误

: http://gbdev.gobao.com:8000/OA_HTML/gobao/gbqrcode.jsp?BARCODE=1234

Request URI:/OA_HTML/gobao/gbqrcode.jsp

Exception:

java.lang.InternalError: Can't connect to X11 window server using 'gbdev:0.0' as the value of the DISPLAY variable.

XMLgbdev:0.0rootQrcode.jargbqrcode.jsp,Qrcode.jar

+xhost

: export DISPLAY=gbdev:0.0

Oracle EBS

执行仍然提示如上错误。

$APPL_TOP/adminGBDEV_gbdev.xml():

AutoConfig$IAS_ORACLE_HOME/Apache/Jserv/etc/目录jserv.propertieswrapper.classpath=<QRCode.jar>Qrcode.jar

中文参数值问题

XMLJSP

utl_url.escapeURLEncode

begin   dbms_output.put_line(utl_url.escape('Oracle EBS QRCode二维条转码',true,'GB2312'));   dbms_output.put_line(utl_url.escape('Oracle EBS QRCode二维条转码',false,'GB2312'));   dbms_output.put_line(utl_url.escape('Oracle EBS QRCode二维条转码',true,'UTF8'));   dbms_output.put_line(utl_url.escape('Oracle EBS QRCode二维条转码',false,'UTF8')); end;

utl_url.unescapeURLDecode

begin  dbms_output.put_line(utl_url.unescape('Oracle%20EBS%20QRCode%E4%BA%8C%E7%BB%B4%E6%9D%A1%E8%BD%AC%E7%A0%81','UTF8')); end;
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!