這段代碼是完全錯誤的嗎?我正在爲一個uni項目製作一個web service
。可以在web service
方法中連接到數據庫。 連接的代碼在標準SE項目中工作,但在Web服務中NetBeans
不允許我部署該項目時,它表示無法創建WSDL
。在NetBeans上使用Java的Web服務
/* *要更改此模板,請選擇工具|模板 *並在編輯器中打開模板。 */ package org.me.calculator;
import com.mysql.jdbc.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;
/**
*
* @author ericman
*/
@WebService(serviceName = "CalculatorWS")
@ Stateless()
public class CalculatorWS {
/**
* Web service operation
*/
@WebMethod(operationName = "UppDateBook")
public String UppDateBook(@WebParam(name = "name") String name) throws SQLException {
//TODO write your implementation code here:
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/bookcatalog","ericman","ericman");
Statement stmt = (Statement) con.createStatement();
String insert = "INSERT INTO `bookcatalog`.`books` (`name`, `isbn`, `price`, `publisher`, `img`) VALUES ('BookOne', '12456789', '45', 'publisher', 'httpfile');";
int numUpdate = stmt.executeUpdate(insert);
stmt.close();
return null;
}
}
錯誤消息
重度:無法找到adpater端點 警告:MEX0008:無法使用協議SOAP_1_1在http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL/mex解析從服務器返回的元數據。繼續嘗試。 信息:[錯誤]服務器返回的HTTP響應代碼:405對於URL:http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL 無法讀取WSDL文檔:http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL,因爲1)找不到文檔;/2)文件不能被讀取; 3)文檔的根元素不是。 信息:[錯誤] failed.noservice =在提供的WSDL中找不到wsdl:服務: 至少需要提供一個至少有一個服務定義的WSDL。 信息:無法解析WSDL。 INFO:調用的wsimport與http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL 重度:的wsimport失敗 INFO:地鐵監測ROOTNAME成功設置爲:AMX:PP = /月/服務器紋[服務器],類型= WSEndpoint,名稱= WebSercviceOne-WebSercviceOnePort 警告:集裝箱的有機.glassfish.webservices.JAXWSContainer @ 7339ea2c不支持類com.sun.xml.ws.api.server.Module 信息:WS00019:部署了EJB端點 ServiceOne正在監聽地址http://ericman-PC:8080/WebSercviceOne/WebSercviceOne INFO:WEB0671:正在加載應用程序[ServiceOne ]在[/ ServiceOne] 信息:ServiceOne已成功部署在511毫秒。 信息:解析WSDL ...
WebServices可以訪問數據庫肯定,我自己做。我們需要更多關於例外的細節。也許一個堆棧跟蹤可以幫助嗎? 我真的懷疑這就是失敗的原因。 – javydreamercsw
'爲以下WSDL生成工件時出錯http:// localhost:8080/CalculatorWS/CalculatorWS?WSDL 可能的原因可能是在應用程序未配置爲安全時調用https這是當我嘗試測試Web服務 – helloThere
注意:你應該注入DataSource/EntityManager。不要調用DriverManager.getConnection。 – Puce