标签: axis2

Apache Rampart是否可以与maven一起使用?

在我正在工作的项目中,我们使用maven来管理依赖项.但是我们遇到了apache rampart的问题,它是Axis2的安全模块.我们尝试使用以下依赖项标记:

    <dependency>
        <groupId>org.apache.rampart</groupId>
        <artifactId>rampart</artifactId>
        <version>1.3</version>
        <type>mar</type>
    </dependency>

    <dependency>
        <groupId>org.apache.rampart</groupId>
        <artifactId>rampart</artifactId>
        <version>1.4</version>
        <type>mar</type>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

发生的事情是,maven无法找到作为wallart pom文件中的依赖项包含的大量资源(请注意,maven会自动下载rampart pom文件,因此我不应该编辑这些文件).

当输入maven无法找到的rampart依赖项的URI时,我收到404错误.看起来apache的壁垒pom文件坏了......

有人成功地使用了与maven的垒垒吗?这是与maven破解的apache垒集合吗?

java apache soap axis2 rampart

5
推荐指数
1
解决办法
3190
查看次数

WSDLException:尝试解析引用的模式时发生错误

我正在尝试使用eclipse Galileo和Windows xp上的轴2 1.4从本地WSDL文件生成代理类.我的问题是由于WSDL中导入的模式而导致错误.困扰我的那条线是:

<xsd:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="http://www.w3.org/2005/05/xmlmime"/>
Run Code Online (Sandbox Code Playgroud)

我试过运行wsdl2java以下命令:

wsdl2java.bat  -uri SOAService.wsdl -o D:\temp p test -d xmlbeans -a -s -ns2p -uw
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException
: Error parsing WSDL
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(CodeGenerat
ionEngine.java:156)
        at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
        at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:ty
pes/xsd:schema): faultCode=OTHER_ERROR: An error occurred trying to resolve sche
ma referenced at 'http://www.w3.org/2005/05/xmlmime', relative to 'file:/D:/Prog
rammi/axis2-1.4/bin/SOAService.wsdl'.: java.net.ConnectException: Connection tim
ed out: connect
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseSchema(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseTypes(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
        at …
Run Code Online (Sandbox Code Playgroud)

eclipse axis wsdl axis2 wsdl2java

5
推荐指数
1
解决办法
1万
查看次数

如何使用axis2-wsdl2code-maven-plugin设置-Euwc param?

我们正在使用axis2来生成Web服务客户端(我现在后悔!).使用axis2命令行工具,您可以将switch -Euwc传递给Integer,将boolean传递给Boolean,以及生成的soruces等等.这是告诉axis2 可以使某些int或boolean值在模式中可以为空的一种方法.

我的问题是如何通过POM或Maven的其他方式设置此参数以实现与生成源相同的行为?我的stackoverflow和谷歌搜索没有太多揭示.有一个Jira问题,似乎被开发人员关闭而没有指向正确的方向.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.futile.bizzareservice</groupId>
<artifactId>BizzareService</artifactId>
<version>2.0</version>
<name>BizzareService</name>
<properties>
    <wsdl.location>unfortunate-wsdls</wsdl.location>
    <axis2.version>1.5.4</axis2.version>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>${axis2.version}</version>
            <configuration>                 
                <packageName>com.futile.bizzareservice.client</packageName>
                <wsdlFile>${wsdl.location}/bizzareservice.wsdl</wsdlFile>
                <language>java</language>
                <databindingName>adb</databindingName>
                <unpackClasses>true</unpackClasses>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2</artifactId>
        <version>${axis2.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-adb</artifactId>
        <version>${axis2.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-adb-codegen</artifactId>
        <version>${axis2.version}</version>
    </dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

在配置中将unwrap设置为true无济于事,因为它们是一个不同的选项.我将来会避免使用axis2,但暂时我们会坚持使用它.

autoboxing axis2 wsdl2code maven

5
推荐指数
1
解决办法
1802
查看次数

Axis2 + Rampart WebService签名和加密

我有一个Web服务和他的客户端之间的安全性问题.我使用Axis2和Rampart构建自下而上的webservice,而不是从生成的wsdl创建客户端.我告诉你我的代码和具体问题.

Client.java

package de.security.tutorial;

import java.io.InputStream;
import java.rmi.RemoteException;

import javax.xml.stream.XMLStreamException;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;

import de.security.tutorial.ServerStub.GetWelcomeResponse;

public class Client {

    /**
     * Load policy file from classpath.
     */
    private static Policy loadPolicy(String name) throws XMLStreamException {
        ClassLoader loader = new ClassLoader() {};
        InputStream resource = loader.getResourceAsStream(name);
        StAXOMBuilder builder = new StAXOMBuilder(resource);
        return PolicyEngine.getPolicy(builder.getDocumentElement());
    }

    public static void main(String[] arg) throws RemoteException{
        String url = "http://localhost:8080/axis2/services/Server";
        try {
            // …
Run Code Online (Sandbox Code Playgroud)

policy ws-security axis2 web-services

5
推荐指数
1
解决办法
5072
查看次数

具有NTLM身份验证的SOAP Web服务的Java客户端

我花了很多天,试图找到一个可以连接到使用Negotiate/NTLM身份验证的Microsoft Dynamics CRM的正确Java框架.我使用各种HTTP协议处理程序,使用JAX-WS,Axis2,CXF尝试了Stackoverflow和其他资源上的所有现有建议.没有人像预期的那样工作.目前最好的方法是Axis2/commons-httpclient-3.1,我可以使用NTLM摘要跟踪至少所有三个阶段,但目标IIS仍然拒绝使用401 Unauthorized进行身份验证.阿帕奇CXF - 都与一个内置的Java6 NTLM支持和JCIFS,其中一些人建议的一种补救措施,也没有工作,要么因为前者未能在第二401响应(虽然它应该已经发送第三请求,根据协议),后者尝试从空输入流中读取响应代码并失败.

那么,问题是是否有人成功地从Java 6平台掌握了受NTLM保护的SOAP Web服务?

java axis2 ntlm cxf

5
推荐指数
1
解决办法
5329
查看次数

符合WS-I Basic Profile 2.0的框架

Wikipedia中列出了许多符合WS-I Basic Profile(BP)的框架.但是,不清楚框架符合哪个版本的BP.所以我的问题如下:

哪些框架/产品(Java,.NET和其他)符合WS-I Basic Profile 2.0?

这个问题的答案可能对选择企业Web服务标准感兴趣.似乎大多数框架都符合BP 1.1,但问题是IT环境是否已准备好升级到BP 2.0(包括MTOM二进制附件,WS-Addressing,SOAP 1.2和UDDI 3).

研究一个示例框架,IBM WebSphere Message Broker(WMB),我发现了以下信息:

但是,我没有找到任何明确的声明,详细说明该产品支持WS-I Basic Profile Version 2.0.许多框架似乎也是如此......

asp.net soap axis2 web-services ws-i

5
推荐指数
0
解决办法
778
查看次数

JBoss6.1和Axis2兼容性问题

我正在使用Eclipse Helios,并为在JBoss6.1上运行的Web应用程序添加了Axis2必需的库,当我启动服务器时,我看到以下错误日志。请帮助解决此问题。

WARN  [org.jboss.detailed.classloader.ClassLoaderManager] Unexpected error during load of:org.w3c.dom.UserDataHandler: java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) previously initiated loading for a different type with name "org/w3c/dom/UserDataHandler"
    at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_27]
    at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_27]
    at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_27]
    at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:52) [jboss-classloader.jar:2.2.1.GA]
    at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:650) [jboss-classloader.jar:2.2.1.GA]
    at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:609) [jboss-classloader.jar:2.2.1.GA]
    at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_27]
Run Code Online (Sandbox Code Playgroud)

-删除了部分日志-在这里

11:06:39,781 WARN  [org.jboss.detailed.classloader.ClassLoaderManager] Unexpected error during load of:org.w3c.dom.DOMConfiguration: java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) previously initiated loading for a different type with name "org/w3c/dom/DOMConfiguration"
    at …
Run Code Online (Sandbox Code Playgroud)

axis2 jboss6.x

5
推荐指数
1
解决办法
5332
查看次数

如何读取文件夹输入流中的文件

我有一个Jar文件,我使用第三方库创建.当我打包jar文件时,我将几个xml文件包含在名为data的文件夹中

data
    - file1.xml
    - file2.xml
    - file3.xml
Run Code Online (Sandbox Code Playgroud)

现在,我想读取jar文件中的文件夹,根据第三方库的文档,我可以获得类加载器,并像这样读取文件夹作为输入流.

ClassLoader clsLoader = myService.getClassLoader();
InputStream accountsStream =  clsLoader.getResourceAsStream("data");
Run Code Online (Sandbox Code Playgroud)

问题是,如何列出输入流中的所有文件并逐个解析?

谢谢

编辑 补充信息:

How do I access resources that I put into my service or module archive file?
Run Code Online (Sandbox Code Playgroud)

http://axis.apache.org/axis2/java/core/faq.html#b1

对不起,这个问题应该是针对Apache Axis的,但如果它也是一个特定于Java的问题,我会感到困惑.

使用类加载器获取文件夹的输入流后,如何将所有文件列入该文件夹并逐个读取?

我的代码中的步骤将包括在内.

  1. 获取输入流到文件夹中
  2. 列出该输入流中的所有文件
  3. 逐一阅读

java axis2 java-io

5
推荐指数
1
解决办法
7809
查看次数

旧版Commons-HttpClient在Axis2 Web服务客户端中提供IOException

我正在为axis2 Web服务使用wsdl2java生成的Web服务客户端(axis2版本为1.6.1).因此,对于http连接,使用旧版本的commons-httpclient 3.1.在对我的Web服务客户端进行一些负载测试时.在某些情况下,我遇到了这个例外

org.apache.axis2.AxisFault: org.apache.axiom.ext.io.StreamCopyException: Error reading from source
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at com.ardic.arcsp.carbon.registry.ws.stub.WSStorageServiceStub.fromOM(WSStorageServiceStub.java:16706)
at com.ardic.arcsp.carbon.registry.ws.stub.WSStorageServiceStub.wSgetById(WSStorageServiceStub.java:6659)
at com.ardic.arcsp.update.wsclient.WSStorageServiceClient.getResourceById(WSStorageServiceClient.java:177)
at com.ardic.arcsp.update.wsclient.OTAUpdateTestServlet.downloadResource(OTAUpdateTestServlet.java:162)
at com.ardic.arcsp.update.wsclient.OTAUpdateTestServlet.doGet(OTAUpdateTestServlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:273)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:305)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:298)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.wso2.carbon.server.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:154)
at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:254)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396) …
Run Code Online (Sandbox Code Playgroud)

axis2 wsdl2java wso2 apache-commons-httpclient

5
推荐指数
1
解决办法
2898
查看次数

通过JaxB JXC为XSD序列生成数组

我有一个XSD描述了一些复杂类型的序列,例如

<xs:complexType name="Catalog">
  <xs:sequence>
    <xs:element name="Category" minOccurs="0" maxOccurs="unbounded">
      <xs:complexType>
        <xs:sequence>
          <xs:element type="xs:string" name="ParentCategoryIDRef"/>
          <xs:element type="xs:string" name="Method"/>
        </xs:sequence>
      <xs:complexType>
    </xs:element>
  </xs:sequence>
<xs:complexType>
Run Code Online (Sandbox Code Playgroud)

现在,当我使用JaxBs XJC将其转换为Java类时,它将java.util.List在我的Catalog类中生成一个字段和getter/setter Category.

但是,在使用java2wsdl的Axis2 Web服务中使用它需要的是Arrays之类的Category[].

我对JaxB绑定有点熟悉,并且已经尝试使用以下方法指定集合类型:

<jaxb:property collectionType="Category[]"/>
Run Code Online (Sandbox Code Playgroud)

导致代码无效,因为它仍然使用a java.util.List,但带有构造函数new Category[]<Category>.

当然,我总是可以在生成后编辑生成的代码,但是当我尝试重新生成代码时,这会导致问题.

我现在得到的是:

public class Catalog {
  @XmlElement(name = "Category")
  protected List<Category> category;
}
Run Code Online (Sandbox Code Playgroud)

我想要的是:

public class Catalog {
  @XmlElement(name = "Category")
  protected Category[] category;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我目前正在使用XJC 2.2.6和Axis2 1.6.2.

java xsd axis2 jaxb xjc

5
推荐指数
1
解决办法
1883
查看次数