總結一下以前的工作中遇到的問題1

HH 表示24小時制
hh 表示12小時制

取消註冊控件

regsvr32 /u "D:\XXX.ocx"

====================================================================================================
利用MyEclipse從數據庫反向生成實體類之Hibernate方式


第一步:


window-->open Perspective-->MyEclipse Java Persistence進行了上面的操作後會出現一個視圖
DB Brower:MyEclipse Derby,點擊右鍵新建一個在出現的面板中,driver template中選擇MySQL的,
driver name自己寫個隨便的,Connection URL就寫平常的JDBC中的URL,用戶密碼也是的,
接下來就是add Jars了這個JAR大家很清楚肯定是MYSQL的驅動包了測試下是否可用,可用就點擊下一步完成就行了,
這時在視圖中會出現你寫的driver name的那個圖標了,點擊圖標可以看到數據庫中所有的表。


第二步:


選中項目右鍵-->MyEclipse-->add Hibernate Capabilities 這裏我們當然是希望用最新的hibernate3.3的了,
雖然說目前已經有3.5的了,但是工具IDE就支持3.3咱就用吧,
然後如果需要用到在實體類上添加註釋的話那麼選中緊挨着的add Hibernate Annotations Support
然後下一步選中一個目錄存放自動生成hibernate.cfg.xml文件,下一步選中一個DB Driver中我們第一步建立的那個,
然後下一步選中一個目錄存放自動生成的HibernateSessionFactory工具類。


第三步:


到DB Brower中那個新建的選中點開到所有表選中並且點擊右鍵
--->Hibernate Reverse Enginnering 選中目錄存放將要反轉出來的實體類並且勾選中第一個Create POJO<>DB
這個選中add Hibernate mapping..用來在實體類中添加註釋映射,選中Update Hibernate configuration..
用來將生成的實體類映射到上一步生成的hibernate.cfg.xml中去,接着再下一步到typeMapping
這裏選中Hibernate type類型,再到Id Generator這裏,我們可以手動寫上guid讓它生成,
下面的選中Generate version and timestamp tags用來在有version字樣的數據庫列生成表的字段時自動加上@version註解,
OK這樣下一步到完成。

==================================================================================================
問題:在執行Hibernate的插入和更新記錄是出現異常,貌似是不識別別名,應該不支持這一種的格式的HQL,
但是在上一個版本的服務中能正常使用,
解決:問題最終確定爲時antlr-2.7.6.jar的問題,原來的jar包爲antlr-2.7.5.jar,這個包應該是解析HQL的。
==================================================================================================
2012-04-19
問題:在通過調用URL來執行servlet動作,對數據庫進行增刪改查時,出現中文信息從客戶端傳到後臺是亂碼。
dataProxy = new HttpProxy(GWT.getModuleBaseURL()
+ "GetXXXServlet?operate=3&authName=" + PubJSFunc.urlChinese(authName));
解決:
//對URl中的中文進行編碼
public static native String urlChinese(String parameter) /*-{
// return escape(parameter);  //不能正常使用
return encodeURI(encodeURI(parameter));
}-*/;

//後臺的處理,對獲取的中文參數進行解碼
URLDecoder.decode(request.getParameter("authNodeName"), "UTF-8");
==================================================================================================

問題:在配置上Hibernate的WEB項目部署到tomcat上時,出現好多異常,原因是找不到所引用的JAR包
解決:把第三方jar包導入到tomcat目錄下的lib下即可。
==================================================================================================
問題:把web service項目發佈到tomcat下是,(web service 是集成hibernate的),找不到hibernate的配置文件
解決:把myeclipse下編譯的com中的.class文件拷貝到tomcat下的項目目錄下的web-info下的classes即可。
==================================================================================================
問題:在生成PKCS12的證書安裝文件是報異常,如下:
Key protection  algorithm not found: java.security.KeyStoreException: Certificate chain is not validate
      因爲JDK本身不支持PKCS12的KeyStore,
解決:在生成KeyStore實例時,指定用“BC”Provider,
      outputKeyStore = KeyStore.getInstance("PKCS12", "BC");
      問題解決!
注意:java在生成證書庫時JKS和PKCS12的步驟是一樣的,步驟如下:

PKCS8EncodedKeySpec pksc8KeySpec = new PKCS8EncodedKeySpec(derRSAprivkey);
			//實例化密鑰工廠,並制定RSA算法
			KeyFactory keyFactory;
			Key privateKey = null;
			KeyStore outputKeyStore = null;
			CertificateFactory cf = null;
		     1.需要有證書的公鑰和私鑰,公鑰需要生成Certificate
		     2.keyFactory = KeyFactory.getInstance("RSA");
		       privateKey = keyFactory.generatePrivate(pksc8KeySpec);
		     3.outputKeyStore = KeyStore.getInstance("PKCS12", "BC");
			outputKeyStore.load(null, password.toCharArray());
			cf = CertificateFactory.getInstance("x509");
			Certificate[] certChain = new Certificate[2];
			String rsaPubKey = rsaKeyPair.getCpubkey();
			String rsaCert  = 。。。
				byte[] rsaCertDer = Base64.decode(rsaCert);
				InputStream isCert = new DataInputStream(new ByteArrayInputStream(rsaCertDer));
				try {
					certChain[0] = cf.generateCertificate(isCert);
				} catch (CertificateException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					return false;
				}
				isDeviceCert = new DataInputStream(new ByteArrayInputStream(Base64.decode(rootCertPem)));
				try {
					certChain[1] = cf.generateCertificate(isCert);
				} catch (CertificateException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				outputKeyStore.setKeyEntry("XXX", privateKey, password.toCharArray(), certChain);
				FileOutputStream out3 = new FileOutputStream("C://XXX.pfx");
				outputKeyStore.store(out3, password.toCharArray());


==================================================================================================
發佈了25 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章