什么是最低的类路径的一Axis2的客户?
题
我想建立一个Axis2客户(我只能访问网远程服务,我 不 实现一个!) 与Maven2我不想添加21MB的罐子给我的项目。我有什么要把我pom.xml 编译代码的时候我已经转换WSDL与亚洲开发银行?
解决方案
(注意::此反应是由亚伦Digulla自己提供以下是他自己的答案完全相同的文字)
在maven2的,设置为使一个ADB客户工作(“ADB”作为创建从WSDL Java类的方式)的最小相关性是这样的:
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.4.1</version>
</dependency>
嗯......看来我不能标志,为正确答案。可有人请复制此,所以我可以检举他的职位?
其他提示
最小的罐子里的客户是:
- activation-1.1.jar
- axiom-api-1.2.8.jar
- axiom-impl-1.2.8.jar
- axis2-adb-1.5.1.jar
- axis2-kernel-1.5.1.jar
- axis2-transport-http-1.5.1.jar
- axis2-transport-local-1.5.1.jar
- commons-codec-1.3.jar
- commons-httpclient-3.1.jar
- commons-logging-1.1.1.jar
- httpcore-4.0.jar
- mail-1.4.jar
- neethi-2.0.4.jar
- wsdl4j-1.6.2.jar
- XmlSchema-1.4.3.jar
斯塔克斯罐子以下都是不一部分Axis2 1.5.1释放,并将需要如果你JAVA version小于6:
- stax-1.2.0.jar
- stax-api-1.0.1.jar
不得不添加的传输,也
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.5.4</version>
</dependency>
最小的依赖性工作的客户在摘要
- axiom-api-1.2.14.jar
- axiom-impl-1.2.14.jar
- axis2-adb-1.6.3.jar
- axis2-kernel-1.6.3.jar
- axis2-transport-http-1.6.3.jar
- axis2-transport-local-1.6.3.jar
- commons-codec-1.3.jar
- commons-httpclient-3.1.jar
- commons-logging-1.1.1.jar
- httpcore-4.0.jar
- mail-1.4.jar
- neethi-3.0.2.jar
- wsdl4j-1.6.2.jar
- XmlSchema-1.4.7.jar
下面列出的最低依赖关系的细节
客户stub使用ServiceClient类产生的与%AXIS2_HOME%\bin\WSDL2Java工具对给定的WSDL(用于产生,你会需要的所有轴线上的罐子就类路径,实现最容易通过设置AXIS_HOME)
课程所需的客户的存根 汇编 时间
- axiom-api-1.2.14.jar --需要在汇编时的客户的存根org.apache.公理。om。OMElement,org.apache.公理。肥皂。SOAPEnvelope,org.apache.公理。肥皂。SOAPFactory,org.apache.公理。om。OMNamespace
- axis2-adb-1.6.3.jar --需要在汇编时的客户的存根org.apache.axis2.数据绑定.ADBException
- axis2-kernel-1.6.3.jar --需要在汇编时的客户的存根org.apache.axis2.AxisFault类
类所需的成功援引的客户的存根 运行 时间
- axiom-impl-1.2.14.jar (没有这种组织。apache.公理。om。OMException:不元的工厂发现的特征的'默认的';这通常意味着axiom-impl.jar 是不在该类路径)
- axis2-transport-http-1.6.3.jar (没有这种组织。apache.axis2.部署。DeploymentException:org.apache.axis2.运输。http。CommonsHTTPTransportSender)
- axis2-transport-local-1.6.3.jar (没有这种组织。apache.axis2.部署。DeploymentException:org.apache.axis2.运输。地方。LocalTransportSender)
- commons-codec-1.3.jar (如果没有这java。郎。NoClassDefFoundError:org/apache/commons/编/DecoderException)
- commons-httpclient-3.1.jar (没有这种组织。apache.axis2.部署。DeploymentException:org/apache/commons/异常/HttpException)
- commons-logging-1.1.1.jar (如果没有这java。郎。NoClassDefFoundError:org/apache/commons/logging/LogFactory)
- httpcore-4.0.jar (如果没有这java。郎。NoClassDefFoundError:org/apache/http/HttpResponseFactory)
- mail-1.4.jar (如果没有这java。郎。NoClassDefFoundError:内/邮件/互联网/如果)
- neethi-3.0.2.jar (如果没有这java。郎。NoClassDefFoundError:org/apache/neethi/PolicyComponent)
- wsdl4j-1.6.2.jar (如果没有这java。郎。NoClassDefFoundError:内/wsdl/WSDLException)
- XmlSchema-1.4.7.jar (如果没有这java。郎。ClassNotFoundException:org/apache/ws/commons/架构/xml schema)
org.apache.axis2.AxisFault:连接拒绝:连接->的错误只有在网服务不是或可访问其他一些原因
注意到精确的版本(s),但是行为将是通用的足够的主题来装修改版本,因此,mentionined的FQCNs上
轴版 1.6.3
Tomcat版本 Apache Tomcat/7.0.64
Servlet版本3.0
java。运行时间。version-1.7.0_79-b15
Axis2的1.6.2版就没有 Axis2的,XMLBeans的工作,我(尽管这可能有事情做与我也使用的 Axis2的-wsdl2code-事实行家-插件插件和的xmlbeans作为我的数据绑定框架)。我有以下POM:
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-xmlbeans</artifactId>
<version>1.6.2</version>
</dependency>
如果您的客户端Java 6的运行,可以考虑使用JAX-WS用于消耗WS。 JAX-WS使用JAXB标准的约束力,你不需要客户端一个额外的罐子。
实际上,只需要在轴-ABD 强>依赖性因为在的axis2内核强>是<强>轴-ABD的子依赖性即可。 因此可以用概括:
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.5.1</version>
</dependency>
在Axis2版1.5.1的家模块现已重组。
我的绝妙的脚本(亚行使用的结合)有下列相关性:
@Grapes([
@Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
@Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
])
有一个逻辑。我可以使用一种替代具有约束力的框架在产生时我的短或可能使用一种替代运输议定书》HTTP。
例法在这 答案
有关使用这些的摇篮下,这里我排除不必要的库:
dependencies {
ext.compileEx = { lib, exModules, exGroups ->
compile (lib) {
exModules.each { exclude module : "$it" }
exGroups.each { exclude group: "$it" }
}
}
List axisExModules = [ 'axiom-compat', 'jaxen', 'apache-mime4j-core' ]
List axisExGroups = [ 'javax.servlet', 'commons-fileupload', 'org.apache.woden',
'javax.ws.rs', 'org.apache.geronimo.specs', 'org.codehaus.woodstox' ]
compileEx ('org.apache.axis2:axis2-adb:1.6.3', axisExModules, axisExGroups)
compileEx ('org.apache.axis2:axis2-transport-local:1.6.3', axisExModules, axisExGroups)
compileEx ('org.apache.axis2:axis2-transport-http:1.6.3', axisExModules, axisExGroups)
}
这里是我原来的职位在摇篮论坛。