2012-11-28 51 views
2

我開發了一個公開web服務的應用程序,該應用程序部署在weblogic 12c中,我從java web客戶端調用web服務,當我運行java客戶端時引發此異常:從weblogic 12c連接到sql server

Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: EJB Exception: ; nested exception is: 
    javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 
Exception Description: Cannot acquire data source [sqlServer]. 
Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'sqlServer'. Resolved ''; remaining name 'sqlServer' 
    at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178) 
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111) 
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108) 
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) 
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107) 
    at $Proxy34.loginService(Unknown Source) 
    at main.Main.loginService(Main.java:32) 
    at main.Main.main(Main.java:22) 

我的Weblogic 12c的管理控制檯配置JDBC資源和JNDI名爲SQLSERVER ...在應用程序中有太多持久性單元的XML文件,即如下:

<persistence-unit name="BancaSimulacionIBancariaPU" transaction-type="JTA"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <jta-data-source>sqlServer</jta-data-source> 
    <class>entities.Account</class> 
    <class>entities.Bank</class> 
    <class>entities.BeneficiaryBankItself</class> 
    <class>entities.BeneficiaryThird</class> 
    <class>entities.CreditCard</class> 
    <class>entities.Movement</class> 
    <class>entities.RuleType</class> 
    <class>entities.ServiceBank</class> 
    <class>entities.TransactionRule</class> 
    <class>entities.UserApplication</class> 
    <class>entities.Money</class> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://servertb:1433;databaseName=BancaSimulacion"/> 
     <property name="javax.persistence.jdbc.password" value="(*******)"/> 
     <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> 
     <property name="javax.persistence.jdbc.user" value="sa"/> 
    </properties> 

我把中的驅動程序文件夾,並配置commEnv.cmd ......我更換64sqljdbc.dll在同一文件夾wl_server/libsqljdbc.dll ...

但我不知道這是適當的設置與我的數據庫連接...我測試的數據庫和正確... 問題是什麼?

回答

0

確保您的數據源有一個目標集 - 否則WebLogic將不知道它,它會拋出令人討厭的JNDI(NameNotFoundException)錯誤。

基本上,您的數據源連接必須是100%正確且功能正常的,以便WebLogic能夠接受和使用它,並且包括確保它具有有效的目標集。