点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我想创建一个JSP并从SAP获取数据。 我遵循了sJco 3.0的官方教程,并停留在第一步中。 我真的很困惑 可以给个提示吗? 下面是正式的示例代码。
公共类StepByStepClient { 静态字符串DESTINATION_NAME1 =" ABAP_AS_WITHOUT_POOL"; 静态字符串DESTINATION_NAME2 =" ABAP_AS_WITH_POOL"; 静态的 { 属性connectProperties = new Properties(); connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, " ls4065"); connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, " 85"); connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, " 800"); connectProperties.setProperty(DestinationDataProvider.JCO_USER, "同志发烧友"); connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "阿拉斯加州"); connectProperties.setProperty(DestinationDataProvider.JCO_LANG, " en"); createDestinationDataFile(DESTINATION_NAME1, connectProperties); connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPA CITY," 3"); connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMI T," 10"); createDestinationDataFile(DESTINATION_NAME2, connectProperties); } 静态无效createDestinationDataFile(String destinationName, 属性connectProperties) { File destCfg = new File(destinationName +"。jcoDestination"); 尝试 { FileOutputStream fos = new FileOutputStream(destCfg, 假); connectProperties.store(fos,"仅用于测试!"); fos.close(); } 捕获(异常e) { 抛出新的RuntimeException("无法创建 目标文件",e); } } 公共静态无效step1Connect()引发JCoException { JCoDestination destination = JCoDestinationManager.getDestination(DESTINATION_NAME1); System.out.print(destination.getAttributes()); }
1。我不知道createDestinationDataFile方法的用途是什么? 它只是创建一个文件,不是吗? 所有已在DestinationProvider中设置的属性,那么为什么需要一个文件?
2。我将示例代码复制到项目中,并且可以正常工作。 但是,当我尝试创建一个JSP并称之为错误时,发生了错误。 我怀疑配置文件ABAP_AS_WITHOUT_POOL.property是原因。 有人之前有相同的错误吗? 错误如下。
08:49:20,035错误[stderr](默认任务2)java.lang.UnsatisfiedLinkError:java.library.path中没有sapjco3 08:49:20,036 java.lang.ClassLoader.loadLibrary上的[stderr]错误(默认任务2)(未知源) 08:49:20,049 io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)出现错误[stderr](默认任务2) 08:49:20,049 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)出现[stderr](默认任务2) 08:49:20,186 io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)出现错误[stderr](默认任务2) 08:49:20,187 io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)出现错误[stderr](默认任务2) ... 08:49:20,229错误[io.undertow.request](默认任务2)UT005023:对/TestWebsite/1.jsp的异常处理请求:javax.servlet.ServletException:java.lang.ExceptionInInitializerError:JCo初始化因Java而失败。 lang.UnsatisfiedLinkError:java.library.path中没有sapjco3 在org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:889) 在org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:818) 在org.apache.jsp._1_jsp._jspService(_1_jsp.java:165) 在org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) 在org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403) 在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 在io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 在io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32) 在io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) ... 引起原因:java.lang.ExceptionInInitializerError:JCo初始化失败,并出现java.lang.UnsatisfiedLinkError:java.library.path中没有sapjco3 在com.sap.conn.jco.rt.MiddlewareJavaRfc。(MiddlewareJavaRfc.java:226) 在com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:98) 在com.sap.conn.jco.rt.JCoRuntimeFactory。 (JCoRuntimeFactory.java:23) 在java.lang.Class.forName0(本地方法) 在java.lang.Class.forName(未知来源) 在com.sap.conn.jco.JCo.createJCo(JCo.java:52) 在com.sap.conn.jco.JCo。 (JCo.java:26) 在com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:104) 在SCOfetch.JCOtest.step4QueryTable(JCOtest.java:217) 在org.apache.jsp._1_jsp._jspService(_1_jsp.java:149) ...另外45个
在wildfly 11服务器中。 我在modules文件夹中的dll和jar中创建了一个模块,并在jboss-deployment-structure.xml中指向它并解决了问题。
ricky luo ,请继续回答您的公开问题。
sapjco3.dll似乎丢失或版本错误。
您是否已安装sapjco3.dll库,并确保已安装JVM和sapjco3。 dll适用于同一平台。
转到"开始">"控制面板">" Java"以检查JVM版本。
否则,请尝试以下链接以获取更多信息:
1。 库的JCO 3问题-UnsatisfiedLinkError [ 求助]-IT组工具箱
2。 https://scn.sap.com/thread/11967
3。 错误:sapJco3加载Java库
一周热门 更多>