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

Xpages 如何从XPage中的OSGI包访问org.apache.axis以使用Web服务?,xpages,Xpages,我正在尝试使用XPage中的Web服务。我已经找到了Stephan Wissel的博客条目 如果在{domino}/jvm/lib/security目录下的java.policy文件中添加以下行,那么它就可以正常工作 grant { permission java.lang.RuntimePermission "setContextClassLoader"; permission java.lang.reflect.ReflectPermission "suppressAccessCheck

我正在尝试使用XPage中的Web服务。我已经找到了Stephan Wissel的博客条目

如果在{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

尝试将捆绑包添加到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文件吗?

您是否尝试使用CXF而不是axis?如果还有什么失败的话。。。一个隐藏的小LotusScript走了很长的路


或者,您可以将web服务打包到插件中。它们的运行权限比NSFs中的代码要好。

您是否尝试使用CXF而不是Axis?如果还有什么失败的话。。。一个隐藏的小LotusScript走了很长的路


或者,您可以将web服务打包到插件中。它们的运行权限比NSFs中的代码要好。

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

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

我打赌他们甚至不明白这两个指令会改变什么

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

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

我打赌他们甚至不明白这两个指令会改变什么

是的,我试过CXF。不幸的是,我仍然需要修改java.policy文件。所以下一步:将WS-client移动到插件?是的,我尝试了CXF。不幸的是,我仍然需要修改java.policy文件。所以下一步:将WS-client移动到插件?这可能是一个机会。另一方面,如果我能说服他们没有其他办法,我可能会选择“大”解决方案。使下一个项目更加容易。;-)这可能是个机会。另一方面,如果我能说服他们没有其他办法,我可能会选择“大”解决方案。使下一个项目更加容易。;-)