本教學示範使用 NetBeans IDE 6.0 快速建立 JAX-WS Web 服務客戶端,呼叫 CDYNE 拼寫檢查服務並呈現結果。
File > New Project > Web > Web Application,專案名 SpellCheckServiceNew > Other > Web Services > Web Service Clienthttps://ws.cdyne.com/SpellChecker/check.asmx?WSDLorg.netbeans.end2end.check.clientWeb Service References 節點顯示 check 服務與 CheckTextBody 操作IDE 自動產生 JAX-WS 客戶端樁(build 目錄下可見生成類別)。
<body>
<form name="Test" method="post" action="SpellCheckServlet">
<p>Enter the text you want to check:</p>
<p><textarea rows="7" name="TextArea1" cols="40"></textarea></p>
<p><input type="submit" value="Spell Check" name="spellcheckbutton"></p>
</form>
</body>
表單提交至 SpellCheckServlet。
New > Servlet,名稱 SpellCheckServlet,套件同客戶端processRequest 中右鍵 Web Service Client Resources > Call Web Service OperationCheckTextBody,IDE 注入呼叫程式碼
@WebServiceRef(wsdlLocation = "https://ws.cdyne.com/SpellChecker/check.asmx?WSDL")
private Check service;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String text = request.getParameter("TextArea1");
CheckSoap port = service.getCheckSoap();
String bodyText = text;
String licenseKey = "0"; // 免費測試金鑰
DocumentSummary doc = port.checkTextBody(bodyText, licenseKey);
String allContent = doc.getBody();
int mistakeCount = doc.getMisspelledWordCount();
List wrongWords = doc.getMisspelledWord();
// 輸出 HTML 報告
out.println("Spell Checker Report ");
out.println("Spell Checker Report
");
out.println("
Your text: \"" + allContent + "\"");
for (int i = 0; i < wrongWords.size(); i++) {
Words w = (Words) wrongWords.get(i);
String word = w.getWord();
int sugCount = w.getSuggestionCount();
List sugs = w.getSuggestions();
out.println("
Wrong word: " + word + "");
out.println("
" + sugCount + " suggestions:
");
for (int k = 0; k < sugs.size(); k++) {
out.println((String)sugs.get(k) + "
");
}
}
out.println("
Summary: " + mistakeCount + " mistakes (");
for (int i = 0; i < wrongWords.size(); i++) {
out.println(((Words)wrongWords.get(i)).getWord() + " ");
}
out.println(").");
} catch (Exception ex) {
System.out.println("exception: " + ex);
out.println("exception: " + ex);
} finally {
out.close();
}
}
Run,IDE 編譯部署至伺服器Spell Check,查看錯誤單字與建議替換列表NetBeans JAX-WS 向導將 WSDL 轉為型別安全的 Java 介面,開發者專注業務邏輯(準備參數、處理回傳物件),無需手寫 SOAP 通訊細節。這是 Java EE 開發 Web 服務客戶端的標準高效路徑。