2007年4月30日
當(dāng)創(chuàng)建一個(gè)JSP文件或者編輯一個(gè)JSP文件時(shí)報(bào)錯(cuò),具體信息:
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:3374)
at org.eclipse.swt.SWT.error(SWT.java:3297)....
解決方法:將jsp的默認(rèn)打開方式改成代碼試圖:
window---->perferences----->General------->editors------>file associations
選擇jsp------->選擇相應(yīng)的editor 為default。也就是把myeclispe jsp editor 設(shè)為default(而不是myeclispe visual jsp editor)。
在銷售定單中進(jìn)行定價(jià)的時(shí)候報(bào):定價(jià)錯(cuò)誤,丟失必要條件 MWST,可用VK11,維護(hù)條件MWST和MWSI。
物資在報(bào)廢時(shí),采用移動類型555,提示移動類型555與總賬科目XXX價(jià)值串字段不一致,這樣的錯(cuò)誤,可到后臺對移動類型555的相關(guān)字段進(jìn)行設(shè)置,比如這里系統(tǒng)標(biāo)準(zhǔn)的移動類型555其中,成本中心這個(gè)字段是必輸?shù)模枰獙⑵涓臑殡[去、或選擇輸入,進(jìn)入SPRO->物料管理->庫存管理和實(shí)際庫存->發(fā)貨/轉(zhuǎn)儲記賬->定義屏幕格式,選中雙擊,即可進(jìn)入,選擇相關(guān)的字段即可。
在做發(fā)票校驗(yàn)時(shí)提示"請維護(hù)容差碼BW的容差限制",或者"請維護(hù)容差碼BD的容差限制"等等類似相關(guān)的信息時(shí),可到后臺配置omr6,維護(hù)視圖 容差限制,復(fù)制新增相關(guān)公司下的容差選項(xiàng),保存即可。
采購訂單修改歷史查看,可通過me23n,進(jìn)去之后,環(huán)境-->表頭更改/項(xiàng)目更改,來查看訂單的操作歷史
定制本地布局 該項(xiàng),則可定義常用的快捷方式,右鍵快速復(fù)制的功能,需要選中 快捷剪切和粘貼 該項(xiàng)
定制本地布局-->選項(xiàng)-->專家-->控件,在所有下拉列表中顯示鍵值 勾選,可顯示各下拉列表的參數(shù)值
定制本地布局-->選項(xiàng)-->本地?cái)?shù)據(jù),設(shè)置操作歷史數(shù)據(jù),即在輸入文本上打空格之后,會在相應(yīng)位置上顯示輸入過的所有數(shù)據(jù)
菜單界面-->設(shè)置-->顯示技術(shù)參數(shù) 勾選,可在所有的菜單事務(wù)前,顯示事務(wù)代碼
su3 個(gè)人參數(shù)設(shè)置,默認(rèn) 里可設(shè)置默認(rèn)打印參數(shù),不必每次都去選定打印機(jī)等參數(shù)信息。
在做物資移動的時(shí)候,產(chǎn)生**科目有問題,一般都是財(cái)務(wù)的總賬科目有問題,此時(shí),可用fs00,來設(shè)置總賬科目的屬性,常用的選項(xiàng)有 本位幣余額、自動過賬。
在對采購訂單進(jìn)行收貨的過程中,出現(xiàn)了這個(gè)問題,后來在網(wǎng)上找到這樣的解決方法:
采用T-CODE SM30--->T169P表維護(hù)一下該條目即可,看情況是發(fā)票校驗(yàn)之類沒有設(shè)置好造成的問題。
好久沒有來了,從原單位辭職以后,到這邊來,做sap內(nèi)部顧問,做業(yè)務(wù),大半年也沒有動過代碼了,有同事羨慕,不用天天加班了,但自己心里真的還是空蕩蕩的,曾經(jīng)給自己愛與恨的代碼,就這樣拜拜了么?
從另一面講,也給自己一個(gè)嘗試吧,權(quán)當(dāng)鍛煉一下自己其他方面的能力,對公司來講,哪里需要我,我就去哪里吧,畢竟老板賞識了,才有自己的價(jià)值么,干什么,我想對我來說都是一種幫助,一種積累吧!
1、無法安裝,提示掛起,要求重啟機(jī)器,但重啟之后,依然如此。
原因:是安裝程序在先前的安裝過程中在系統(tǒng)注冊表留下某些信息,導(dǎo)致不能安裝。
解決方法:在運(yùn)行窗口輸入regedit,打開注冊表編輯器,在HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager中找到PendingFileRenameOperations,刪除該鍵值(這個(gè)鍵值是安裝程序暫掛項(xiàng)目,只要找到對應(yīng)的應(yīng)用程序清除掉就行了),關(guān)閉注冊表編輯器。重新安裝即可。
2、外面的客戶端無法連接到服務(wù)器,而服務(wù)器本地打開數(shù)據(jù)庫一切正常。
原因及解決方法:服務(wù)器端的監(jiān)聽端口沒有打開,在dos命令下, 使用netstat -an查看端口,沒有默認(rèn)的1433監(jiān)聽端口,windows server的操作系統(tǒng)該端口默認(rèn)是關(guān)閉的,必須要打相應(yīng)的補(bǔ)丁,目前最新的是sp4。
首先發(fā)現(xiàn)的問題是${aaa},像這樣的標(biāo)簽無法解析,當(dāng)在頁面上添加這樣的標(biāo)簽聲明的時(shí)候
<%@ taglib prefix="c" uri= "http://java.sun.com/jstl/core "%>
貌似所有的<c:out諸如此類的都可以使用了,但并不是真的我們引入的jstl包和standar包都起作用了,因?yàn)橄襁@樣的${aaa}標(biāo)簽還是無法解析的,說明引用還有問題。
在web文件中我們注冊了這些tag,諸如
1 <taglib>
2 <taglib-uri>/tags/c</taglib-uri>
3 <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
4 </taglib>
所有的tld文件都放在web-inf下面,在頁面上引用這些標(biāo)簽的時(shí)候如
<%@ taglib uri="/tags/c" prefix="c" %>
會發(fā)現(xiàn)c標(biāo)簽全部都無法解析,而換成
<%@ taglib prefix="c" uri= "http://java.sun.com/jstl/core "%>
的時(shí)候還可以,說明這些標(biāo)簽文件還是沒有引用成功,什么原因呢,這個(gè)問題折騰了我一天,因?yàn)閣eb工程的web.xml文件頭聲明的servlet版本有問題,在eclipse中默認(rèn)的web.xml是沒有版本定義的文件頭的,默認(rèn)的版本應(yīng)該是servlet2.3,當(dāng)我們添加如下聲明的時(shí)候
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

同時(shí),需要修改一下web.xml文件中對應(yīng)的出現(xiàn)紅線的地方,在tag聲明部分也需要加上<jsp-config>標(biāo)簽,如下所示:
<jsp-config>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
</jsp-config>
ok,運(yùn)行,正常!
另,我用的jstl和standar都是1.1.2版本的
我經(jīng)常用win2003的系統(tǒng),這個(gè)是因?yàn)閱⒂糜布虳irectX加速默認(rèn)沒有加速。
*硬件加速:桌面點(diǎn)擊右鍵--屬性(Properties) -> 設(shè)置(Settings )--高級(Advanced )--疑難解答(Troubleshoot)。把該頁面的硬件加速滾動條拉到“完全”( Full),最好點(diǎn)擊“確定”(OK)保存退出。這期間可能出現(xiàn)一瞬的黑屏是完全正常。
*DirectX加速:打開“開始”(Start) -> “運(yùn)行”(Run),鍵入“dxdiag”并回車打開“DirectX 診斷工具”(DirectX Tools),在“顯示”(Display)頁面,點(diǎn)擊DirectDraw, Direct3Dand AGP Texture 加速三個(gè)按鈕啟用加速。把“聲音的硬件加速級別”(Hardware Sound Acceleration Leve l)滾動條拉到“完全加速”( Full Acceleration)。
還有雙擊exe時(shí)報(bào)內(nèi)存不能“written”的錯(cuò)誤,該問題的解決辦法是,
我的電腦--屬性--高級--性能--設(shè)置--數(shù)據(jù)執(zhí)行保護(hù)--選擇只為關(guān)鍵windows程序和服務(wù)啟用數(shù)據(jù)執(zhí)行保護(hù) 即可。確定,重啟機(jī)器,一切正常,順利進(jìn)入游戲!
java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
org.apache.jasper.compiler.TagLibraryInfoImpl.createAttribute(TagLibraryInfoImpl.java:568)
org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:401)
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:248)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:162)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:495)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:476)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:464)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75)
導(dǎo)致以上原因的是因?yàn)閖avax.servlet.jsp.tagext.TagAttributeInfo有沖突
當(dāng)前classpath中有兩個(gè)version的javax.servlet.jsp.tagext.TagAttributeInfo class,一個(gè)在servlet.jar另一個(gè)在jsp-api.jar中。 jsp-api.jar的那個(gè)是好用的,它只包含javax\servlet\jsp這個(gè)包,而servlet.jar中也包含它,同時(shí)包含servlet需要的關(guān)鍵包。所以在classpath中jsp-api.jar要比servlet.jar先被reference。
另外在jboss3.2.*之后的自己帶的lib中已經(jīng)將javax\servlet\jsp從servlet.jar中分開了,分別是javax.servlet.jar(jsp-api.jar)和javax.servlet.jsp.jar(serlvet-api.jar).
最后申明一下,該問題的解決版權(quán)歸該位仁兄http://blog.donews.com/bluecatr/archive/2006/07/05/947177.aspx,致敬!哈哈!
碰到一個(gè)問題,在轉(zhuǎn)換類型時(shí),Long.valueof(0),即將int類型轉(zhuǎn)換成Long類型時(shí),在eclipse里不提示錯(cuò)誤,但在實(shí)際轉(zhuǎn)換過程中會出錯(cuò),當(dāng)改成Long.valueof("0"),就不會出現(xiàn)錯(cuò)誤,似乎,Long.valueof()只支持String類型的轉(zhuǎn)換。
以前寫過的一個(gè)從網(wǎng)上提取天氣信息的類,參照了公司老前輩們的代碼,可能不太規(guī)范,但基本實(shí)現(xiàn),主要就是對頁面源碼的解析和有用信息的截取,取出來得都是有規(guī)律的字符串信息,可根據(jù)需要存進(jìn)數(shù)據(jù)庫,進(jìn)行應(yīng)用。代碼如下:
1 package parsehtml;
2
3 import java.io.BufferedReader;
4 import java.io.InputStreamReader;
5 import java.net.HttpURLConnection;
6 import java.net.URL;
7 import java.util.ArrayList;
8 import java.util.Iterator;
9 import java.util.List;
10
11 public class ParseHtml extends Thread {
12 /*
13 * 解析網(wǎng)址運(yùn)行
14 *
15 */public void run() {
16 try {
17 // 河北天氣
18 String urlAddress = "http://www.weathercn.com/forecast/province.jsp?province=hebei";
19 startParse(urlAddress);
20 } catch (Exception e) {
21 e.printStackTrace();
22 System.out.println("網(wǎng)絡(luò)錯(cuò)誤,提取天氣數(shù)據(jù)出錯(cuò)!");
23 }
24 }
25
26 /*
27 *
28 * 開始解析網(wǎng)址
29 *
30 *
31 */public void startParse(String urlAddress) throws Exception {
32 System.out.println("開始提取網(wǎng)址:" + urlAddress);
33 URL url = new URL(urlAddress);
34 HttpURLConnection httpConnection = (HttpURLConnection) url
35 .openConnection();
36 httpConnection.setRequestProperty("User-Agent", "Mozilla");
37 httpConnection.setRequestProperty("Connection", "Keep-Alive");
38
39 int responseCode = 0;
40 try {
41 responseCode = httpConnection.getResponseCode();
42 } catch (Exception ex) {
43 System.out.println("讀取網(wǎng)頁失敗,返回代碼:" + responseCode);
44 }
45 System.out.println("讀取網(wǎng)頁反回代碼:" + responseCode);
46
47 // 獲得輸入流
48 InputStreamReader ir = new InputStreamReader(httpConnection
49 .getInputStream());
50 if (ir != null) {
51 BufferedReader reader = new BufferedReader(ir);
52 System.out.println(reader);
53 if (reader != null)
54 // 調(diào)用從何處取數(shù)據(jù)
55 isStartPoint(reader, "99", 1);
56 reader.close();
57 ir.close();
58 }
59
60 }
61
62 private void isStartPoint(BufferedReader reader, String tag, int number)
63 throws Exception {
64 String CurrentLine = "";
65
66 // 從流中讀取一行字符串(html源文件)
67 while ((CurrentLine = reader.readLine()) != null) {
68
69 // 循環(huán)查詢整個(gè) CurrentLine 中的 tag,查到一個(gè)就將計(jì)數(shù)據(jù)器 number 減 1
70 int fromIndex = 0;
71 while ((number != 0)
72 && (CurrentLine.toUpperCase().indexOf(tag.toUpperCase(),
73 fromIndex) != -1)) {
74 fromIndex = CurrentLine.toUpperCase().indexOf(
75 tag.toUpperCase(), fromIndex) + 1;
76 if (fromIndex > 0)
77 number--;
78 }
79
80 // 如果到了起始點(diǎn)即 number == 0 時(shí),開始執(zhí)行取數(shù)據(jù)操作
81 List sb = new ArrayList();
82 if ((CurrentLine.indexOf("citydetail") > 0)
83 && (CurrentLine.indexOf("99") > 0)) {
84 sb.add(this.processBuffer(CurrentLine));
85 // 截取天氣信
86 CurrentLine = reader.readLine();
87 CurrentLine = reader.readLine();
88 if (CurrentLine != null) {
89 sb.add(this.processBuffer(CurrentLine));
90 }
91 // 截取最低氣溫
92 CurrentLine = reader.readLine();
93 if (CurrentLine != null) {
94 sb.add(this.processBuffer(CurrentLine));
95 }
96 }
97 StringBuffer s = new StringBuffer();
98 // 將所有的截取信息匯總進(jìn)行處理,用‘,’間隔便于以后截取相應(yīng)信息
99 for (Iterator it = sb.iterator(); it.hasNext();) {
100 String i = it.next().toString();
101 s.append(i);
102 }
103 String Tq = s.toString();
104 String[] Tqxx = Tq.split(",");
105 if (Tqxx.length >= 3) {
106 System.out.println(Tq);
107 }
108 }
109 }
110
111 /*
112 * 判斷并從網(wǎng)頁上截取
113 *
114 * @param old
115 */
116 private String processBuffer(String strLine) throws Exception {
117 // 保存當(dāng)前取得的 城市
118 StringBuffer sb = new StringBuffer();
119 String Tqxx;
120 // 當(dāng)當(dāng)前行含有“城市”時(shí),截取相應(yīng)的城市名稱
121 if (strLine.indexOf("citydetail") > 0) {
122 Tqxx = subString(strLine, "sta_id", "<");
123 Tqxx = Tqxx.substring(24);
124 sb = sb.append(Tqxx + ",");
125 }
126 if (strLine.indexOf("alt") > 0) {
127 Tqxx = subString(strLine, "alt", ">");
128 Tqxx = Tqxx.substring(1);
129 sb = sb.append(Tqxx + ",");
130 }
131 if (strLine.indexOf("strong") > 0) {
132 strLine = strLine.replaceAll(" ", "");
133 Tqxx = subString(strLine, "strong>", "<");
134 String Tqxx1 = subString(strLine, "-", "</");
135 Tqxx1 = Tqxx1.substring(8);
136 Tqxx = Tqxx + "~" + Tqxx1;
137 sb = sb.append(Tqxx + ",");
138 }
139 return sb.toString();
140
141 }
142
143 /*
144 * 返回在 strSourc 的 strStart ,strEnd 之間的字符串
145 *
146 */
147 private String subString(String strSource, String strStart, String strEnd) {
148 strSource = strSource.toUpperCase();
149 strStart = strStart.toUpperCase();
150 strEnd = strEnd.toUpperCase();
151 int intStart = strSource.indexOf(strStart);
152 int intEnd = strSource.indexOf(strEnd, intStart);
153 String strRetu = " ";
154 if (intStart == -1)
155 return strRetu;
156 if ((intEnd != -1) && (intEnd > intStart)) {
157 strRetu = strSource.substring(intStart + strStart.length(), intEnd);
158 } else {
159 strRetu = strSource.substring(intStart + strStart.length());
160 }
161 return strRetu.trim();
162 }
163
164 public ParseHtml() {
165
166 }
167
168 public static void main(String args[]) {
169 ParseHtml p = new ParseHtml();
170 p.run();
171 }
172 }
173