我使用axis2从我创建的java类创建Web服务.一切都运作良好,但我希望能够自定义wsdl,我无法弄清楚如何做到这一点.我尝试使用一些JAXB注释与我的对象(使用axis1),但它对wsdl生成没有影响.
我希望能够为某些元素指定nillable = true并使其他元素成为必需.我也希望能够更改元素名称和其他内容.如果META-INF文件夹中没有包含WSDL,那么axis2不应该查看JAXB2.0注释吗?
我一直试图谷歌如何以自下而上的方式绘制架构,但我没有运气.axis2网站仅显示创建Web服务或客户端的基本步骤,但没有关于自定义架构的信息.
在Axis2中部署JAX-WS服务时是否可以指定安全策略断言?到目前为止,我发现只有一种方法是全局配置策略(即在axis2.xml中).但它可以在JAXWS JAR中完成吗?
我使用以下 WSDL 托管 WCF Web 服务(使用 wsHttpBinding 和 SSL 实现传输安全的简单服务):
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="MagicEightBallService" targetNamespace="http://tempuri.org/">
<wsp:Policy wsu:Id="WSHttpBinding_TransportSecurity_IMagicEightBallService_policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic256/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
</wsp:Policy>
</sp:TransportBinding>
<wsaw:UsingAddressing/>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
<wsdl:types>
<xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import schemaLocation="http://my.local.domain.name/MagicEightBall/MagicEightBallService.svc?xsd=xsd0" namespace="http://tempuri.org/"/>
<xsd:import schemaLocation="http://my.local.domain.name/MagicEightBall/MagicEightBallService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="IMagicEightBallService_GetAdvice_InputMessage">
<wsdl:part name="parameters" element="tns:GetAdvice"/>
</wsdl:message>
<wsdl:message name="IMagicEightBallService_GetAdvice_OutputMessage">
<wsdl:part name="parameters" element="tns:GetAdviceResponse"/>
</wsdl:message> …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用axis2实现了webservice(服务器端).我们希望在现有Web服务中启用WS-security.我们正在评估apache ramapart模块是否符合我们的需求.这是我们的要求:基本上我们有内部安全框架,提供加密,签名和令牌生成功能.我们的内部安全框架基本上需要以XML形式的一组配置,并且它公开各种API以执行各种安全操作.
现在有了上述环境,我可以想到三种可能的解决方案: -
我可以围绕内部安全框架开发一个axis2模块,并在安全阶段将其安装为.mar文件.所以我不会使用apache rampart.但是这种方法的问题是我不能使用ws-security策略来指定安全断言并确保传入的安全性令牌符合有效的策略.这就像重新发明轮子已经做的那样.
我相信apache rampart强调要求apache wss4j模块进行安全操作.我相信apache wss4j模块提供了一种注册第三方安全提供程序的方法(通过实现CryptoProvider接口).我不确定这是否是可行和可行的解决方案.请建议.
Ws-security策略允许使用自定义令牌.可以使用我们的内部安全框架构建此自定义令牌.所以基本上它使我们能够使用apache rampart模块创建ws-security策略,并使用我们的安全框架开发自定义令牌.但我在互联网上找不到这方面的帮助.有谁可以帮助举例.
任何其他建议也是最受欢迎的.
使用Axis2 Wsdl2Java:有没有办法从wsdl生成相关的客户端代码,但只能用于wsdl中受支持的操作的子集.
也就是说,如果wsdl说过一个有争议的操作,那么只能为一个或两个感兴趣的操作生成客户端存根代码?
我已经为客户WSDL生成了客户端存根,并且生成的存根和支持代码对于我的目的来说太大了> 75MB.
我使用了带有-U选项的Axis2 Wsdl2Java来解压缩绑定,并且由于在尝试使用ADB时出现解析错误,我还必须使用XML bean绑定.
谢谢,
由于我没有收到太多关于此的反馈:我将编辑这个来重述问题,(因为我真的不关心解决方案是如何得出的).
基本上我真正的问题是我正在生成一个相当大的WAR文件,该文件在Tomcat7.0中使用客户端并且它消耗了大量内存.
也许,我不需要/不应该在WAR中捆绑所有生成的类.但在我看来,这些是Stub生成的不可或缺的部分,我相信有一个更优雅的解决方案,而不是我手动挑选出来的东西?
所以我想以另一种方式重述问题:Axis2正在生成一个非常大的WAR文件,它消耗了大量的Tomcat资源.如何缩小此WAR以使其更小/"更轻量级"WAR.
谢谢,
我们目前正在构建一个基于Java的服务器,它可以通过Axis2与Sharepoint 2007/2010和Office365版本的Web服务进行交互.我们似乎可以使用Basic/NTLM身份验证来使用Sharepoint 2007/2010,但不能使用Office365版本.
这可能是因为Office365版本仅支持基于声明的身份验证.我们可以实际从Java进行身份验证吗?是否有基于声明的身份验证的开源支持?
在我的项目中,我将不得不基于Web服务技术开发一些数据输入/输出接口.所以到现在为止我已经研究过了.
我对使用Java的Web服务感到好奇的是我可以使用或不使用的库.
当我搜索java库时,我发现Axis2和CXF是非常常见且着名的java w/s库.问题是我必须使用包含轴的RAD 7.0.
似乎Axis和Axis2之间存在巨大的变化,不幸的是我无法使用Axis2.
现在,我的合作伙伴提供了WSDL,我必须实现客户端W/S. 如果我通过Axis或Axis2或CXF从WSDL创建客户端代理代码,它们是否都是相同的代码?
或者如果我必须使WSDL为Axis提供我的W/S接口,那么Axis2或CXF用户是否会遇到问题?
在我的情况下,我很新,害怕使用Axis.谁能给我一些建议?
谢谢.
祝你有美好的一天.
各位我好,我正在使用java web服务,我需要使用轴2.我按照一些教程来解决这个问题..
我遵循的步骤
1)我选择了Windows选项,然后选择了子选项 - >首选项.
2)然后我选择了轴Web服务并选择轴运行时间.
3)然后我给了我的axis2二进制文件的路径,我得到了"Axis2 Loaded successfully"消息.
4)然后我用模块2.5创建动态Web项目然后处理接下来我得到了这个错误.

我从3天开始在网上旅行,但没有找到任何解决方案.
我试图以下面的格式在Java Axis2客户端中生成安全头.
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Username>xxx</wsu:Username>
<wsu:Password Type="wsse:PassowrdTest">xxx</wsu:Password>
</wsu:UsernameToken>
</wsse:Security>
</soapenv:Header>
Run Code Online (Sandbox Code Playgroud)
以下是我目前的代码:
SOAPHeaderElement wsseSecurity = new SOAPHeaderElement(
new PrefixedQName("http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd","Security", "wsse"));
wsseSecurity.setMustUnderstand(true);
wsseSecurity.setActor(null);
SOAPElement sub =wsseSecurity.addChildElement("UsernameToken");
sub.setAttribute("wsu:Id", "UsernameToken-2");
SOAPElement userElement = sub.addChildElement("Username");
userElement.addTextNode("xxx");
SOAPElement pwdElement = sub.addChildElement("Password");
pwdElement.setAttribute("Type", "wsse:PasswordText");
pwdElement.addTextNode("xxx");
stub.setHeader(wsseSecurity);
Run Code Online (Sandbox Code Playgroud) 在SOAP调用期间我得到一个以下异常,但在本地我没有得到任何异常.
我真的不确定为什么寻址-1.6.2.mar引用应用程序jar路径.
Axis2结构:
VM参数:
JAVA_HOME=/apps/jdk/jdk1.8.0_111
ANTIFRAUD_HOME=/apps/Benefits/AntiFraud/r20/dev
nohup $JAVA_HOME/bin/java-Dspring.profiles.active=dev -Dspring.config.location=file:$ANTIFRAUD_HOME/properties/application.properties -Dlogging.config=file:$ANTIFRAUD_HOME/properties/log4j2.xml -Djava.security.auth.login.config=file:$ANTIFRAUD_HOME/properties/kafka-client-jaas.conf -DConfigPath=$ANTIFRAUD_HOME/hasbroResources -Daxis2.repo=$ANTIFRAUD_HOME/hasbroResources/resources/axis2/repository -Daxis2.xml=$ANTIFRAUD_HOME/hasbroResources/resources/axis2/conf/axis2.xml -jar $ANTIFRAUD_HOME/lib/a-notification-0.0.1.jar &
Run Code Online (Sandbox Code Playgroud)
例外:
2019-01-31T08:09:04.603-0600 INFO Deploying module: metadataExchange-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/mex-1.6.2.mar
2019-01-31T08:09:04.603-0600 INFO Deploying module: metadataExchange-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/mex-1.6.2.mar
2019-01-31T08:09:04.610-0600 INFO Deploying module: mtompolicy-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/mtompolicy-1.6.2.mar
2019-01-31T08:09:04.611-0600 INFO Deploying module: mtompolicy-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/mtompolicy-1.6.2.mar
2019-01-31T08:09:04.642-0600 INFO Deploying module: ping-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/ping-1.6.2.mar
2019-01-31T08:09:04.645-0600 INFO Deploying module: ping-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/ping-1.6.2.mar
2019-01-31T08:09:04.663-0600 INFO Deploying module: script-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/scripting-1.6.2.mar
2019-01-31T08:09:04.663-0600 INFO Deploying module: script-1.6.2 - file:/apps/Benefits/AntiFraud/r20/dev/hasbroResources/resources/axis2/repository/modules/scripting-1.6.2.mar
2019-01-31T08:09:04.674-0600 INFO Deploying module: soapmonitor-1.6.2 - …Run Code Online (Sandbox Code Playgroud)