如何从XPage中的OSGI包访问org.apache.axis以使用Web服务?

时间:2012-08-01 08:28:07

标签: xpages

我正在尝试从XPage中使用Web服务。我已经找到了Stephan Wissels的博客文章Webservices in XPages - AXIS vs. CXF

它工作正常,如果在{domino} / jvm / lib / security目录的java.policy文件中添加以下行

grant {
 permission java.lang.RuntimePermission "setContextClassLoader";
 permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
};

我的问题是我的客户有一些非常严格的管理员。他们无法修改java.policy文件。

我搜索了一下,发现在8.5.2中,org.apache.axis文件已被移动到OSGi包中。我绕过修改java.policy的方法是使用这个包。但是,如果我尝试访问它,我总是会收到错误: javax.servlet.ServletException:java.lang.NoClassDefFoundError:org.apache.axis.client.Service

尝试将bundle添加到plugin.xml没有帮助。

<plugin>
<requires>
    <import plugin="org.apache.axis"/>
    <!--AUTOGEN-START-BUILDER: Automatically generated by null. Do not modify.-->
    <import plugin="org.eclipse.ui"/>
    <import plugin="org.eclipse.core.runtime"/>
    <import optional="true" plugin="com.ibm.commons"/>
    <import optional="true" plugin="com.ibm.commons.xml"/>
    <import optional="true" plugin="com.ibm.commons.vfs"/>
    <import optional="true" plugin="com.ibm.jscript"/>
    <import optional="true" plugin="com.ibm.designer.runtime.directory"/>
    <import optional="true" plugin="com.ibm.designer.runtime"/>
    <import optional="true" plugin="com.ibm.xsp.core"/>
    <import optional="true" plugin="com.ibm.xsp.extsn"/>
    <import optional="true" plugin="com.ibm.xsp.designer"/>
    <import optional="true" plugin="com.ibm.xsp.domino"/>
    <import optional="true" plugin="com.ibm.notes.java.api"/>
    <import optional="true" plugin="com.ibm.xsp.rcp"/>
    <import optional="true" plugin="com.ibm.xsp.extlib"/>
    <!--AUTOGEN-END-BUILDER: End of automatically generated section-->
  </requires>
</plugin>

知道如何在XPage中使用org.apache.axis文件吗?

1 个答案:

答案 0 :(得分:0)

也许您可以通过使用精确授权来说服客户的管理员您不会损害服务器安全性。例如:

grant codeBase "xspnsf://server:0/somedb.nsf/script/-"{
   permission java.lang.RuntimePermission "setContextClassLoader";
   permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
}

我敢打赌他们甚至不明白这两个指令的变化。