Tag: cxf

如何在pom.xml中为wsdl2java指定前端?

我找到了关于将-fe jaxws21添加到wsdl2java命令以使其生成jaxws 2.1兼容代码而不是2.2的重要提示,但Maven的pom.xml似乎不喜欢这样的添加: wsdl2java -fe jaxws21 为pom.xml中使用的wsdl2java指定前端的正确方法是什么?

在CXF客户端中启用gzip压缩

我正在尝试让我的客户端使用gzip。 我在服务器中启用了GZipfunction。 似乎客户端没有发送正确的标头: POST /api/v1/data HTTP/1.1 Content-Type: text/xml; charset=UTF-8 Accept: */* SOAPAction: “” User-Agent: Apache CXF 2.6.2 Cache-Control: no-cache Pragma: no-cache Host: localhost:8001 Connection: keep-alive Content-Length: 539 这是我创建客户端的代码: private static final QName SERVICE_NAME = new QName( “http://xxx/”, “IData”); private static final QName PORT_NAME = new QName( “http://xxx/”, “IDataPort”); IData port; public void initPort() { Service […]

如何使cxf-xjc-plugin在utf-8中生成源代码

我尝试使用cxf-xjc-plugin在maven项目中从xsd生成java类。 它运行正常,但生成的源文件获得特定于平台的编码(在Windows PC上为cp1251)而不是utf-8。 如果任何xsd类型在模式注释中包含非拉丁字符,那么它们仅在该特定编码中变得可读,并且编译器稍后会以[WARNING] /C:/…/SomeType.java:[17,4] unmappable character for encoding UTF-8抱怨[WARNING] /C:/…/SomeType.java:[17,4] unmappable character for encoding UTF-8 。 请帮助我强制utf-8生成源代码。 源编码设置为 UTF-8 构建插件的设置如下: … org.apache.cxf cxf-xjc-plugin 2.7.0 org.apache.cxf.xjcplugins:cxf-xjc-dv:2.7.0 net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8 generate-sources generate-sources xsdtojava ${basedir}/target/generated-sources true ${basedir}/src/main/resources/schemas/Policy.xsd ${basedir}/src/main/resources/schemas/Policy.xjb -Xdv -Xfluent-api … 在阅读了xjc的一些旧问题之后,特别是CXF-4369和JAXB-499我尝试使用maven项目属性utf-8强制编码并在运行mvn -Dfile.encoding=utf-8 clean install设置系统属性mvn -Dfile.encoding=utf-8 clean install ,但无处可去。

JAXB使用JAX-WS绑定生成可序列化的类

拥有JAXB-RI和CXF。 WSDL首先。 我想要一个生成的类来实现Serializable 。 我现在有以下绑定xml,它工作(SEI类名称被更改) 不,在这种情况下,我应该添加的位置和内容。 我试过了: 和 标记内部和外部 – 未添加Serializable ,或者根本不生成类(没有任何错误)。 另见这个主题 那么,究竟如何做到这一点

如何将pfx文件转换为jks然后使用它来通过使用wsdl生成的类来签署传出的soap请求

我正在寻找一个代码示例,该示例演示如何使用PFX证书通过SSL访问安全Web服务。 我有证书和密码,我开始使用下面提到的命令创建一个KeyStore实例。 keytool -importkeystore -destkeystore “C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\dvs.keystore” -srckeystore “C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\key.pfx” -srcstoretype pkcs12 -deststoretype JKS -srcstorepass ******* 然后我使用wsimport -keep -verbose -extension https://sandpit.dvshub.com.au:19443/Bus/VerificationServiceBus.svc?wsdl命令生成Java文件。 之后我创建了一个主类,在其中我指定了几个参数,例如这些证书的位置。 System.setProperty(“javax.net.ssl.trustStore”, trustStoreFile); System.setProperty(“javax.net.ssl.trustStorePassword”, trustStorePassword); System.setProperty(“javax.net.ssl.keyStore”, certificateFile); System.setProperty(“javax.net.ssl.keyStorePassword”, certificatePassword); System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”); System.setProperty(“javax.net.ssl.keyStore”, “C:\\Users\\Administrator\\Desktop\\dvs\\key.pfx”); System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”); System.setProperty(“javax.net.ssl.keyStorePassword”, certificatePassword); 然后我最终调用了wsimport使用它生成的服务创建的web方法。 CreatedService service = ServiceFactory/Port/Creator.getCreatedService(); // Where ‘CreatedService’ and ‘ServiceFactory/Port/Creator’ were created by wsimport: this code entirely […]

cxf客户端中的SNI配置(3.1.2)

我想在使用CXF客户端(3.1.2)进行rest呼叫时设置自定义SNI主机名(SNI配置)。 我正在使用java 8.我能够使用HTTPClient做同样的事情(参见下面的强文本代码剪切以供参考),但我无法弄清楚如何使用CXF客户端做同样的事情。 //对于HTTP客户端 private SSLConnectionSocketFactory createSSLConnectionSocketFactory(String sniHostanme, SSLContext sslContext){ // Fix for host name verifier, need to implement———————- SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[] { “TLSv1.2” }, null, SSLConnectionSocketFactory.getDefaultHostnameVerifier()) { @Override protected void prepareSocket(SSLSocket socket) throws IOException { try { // System.out.println(“************ setting socket HOST property *************”); // If SNI is required if […]

如何防止Apache CXF发送响应消息?

在给定SOAP头元素具有给定值的情况下(例如,如果头标记“response”的值为“0”),我不希望Apache CXF完全返回响应。 我怎样才能做到这一点? 似乎CXF假设所有呼叫都会收到响应。 (我知道在Web服务上下文中这似乎很奇怪,但如果你的传输是JMS,那似乎不那么奇怪)。

使用CXF,Jetty和Spring的Web服务

我尝试使用CXF,Jetty和Spring创建简单的Web服务。 我创建服务接口 @WebService public interface AnonymousService { @WebMethod public String getVersion(); } 及其实施 @Service(“anonymousService”) @WebService( serviceName = “AnonymousService”, targetNamespace = “http://ws.test/”, endpointInterface = “test.ws.AnonymousService” ) public class AnonymousServiceImpl { public String getVersion() { return “Version”; } } 下一步我添加到Spring上下文配置文件端点声明 并配置Jetty bean <!—-> 不幸的是,当我启动应用程序时,我得到了跟踪堆栈跟踪 25.09.2010 14:48:07 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://ws.test/}AnonymousService from class name.krestjaninoff.application.interfaces.AnonymousService Exception in […]

最新的CXF与Spring:警告:javax.ws.rs.NotFoundException

我可以从浏览器URL访问REST服务: http://localhost:8080/assignment/services/services/test/test1 从我的servlet,我用来调用服务方法,如下所示。 现在我需要通过REST服务调用,但是要低于错误。 URL url = new URL(“http://localhost:8080/assignment/services/services/”+userName+”/”+password); System.out.println(“URL–>”+url); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(“GET”); connection.setRequestProperty(“Accept”, “application/xml”); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); while(bufferedReader.readLine() != null){ result = bufferedReader.readLine(); } // result = userService.login(userName, password); System.out.println(result); 这是错误: INFO: Reloading Context with name [/assignment] is completed URL–>http://localhost:8080/assignment/services/test/test1 Jul 30, 2013 12:52:02 PM org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor processRequest WARNING: […]

Apache CXF Web服务问题

我有一个使用Maven的多模块项目。 在其中一个模块中,我有几个使用Apache CXF Framework 2.5.4开发的Web服务。 目前我有两个“问题”或问题。 首先,如果我调用一个应该返回List的Web服务的方法,如果列表为空,则返回“null”而不是空列表。 我试图找出可能是什么问题,如果它是我正在使用的CXF版本的错误,或者我应该使用一些注释来修改方法或响应的定义,但我找不到任何东西。 我见过一些人有同样的问题,但没有解决方案。 我想问的另一件事是:我正在使用MVC模式开发一个Web应用程序。 我想知道我应该从Controller调用Web服务的方式,而不是使用ClasspathXmlCpplicationContext然后使用context.getBean()。 例如,客户端上的一个Web服务的bean定义是: 我已经尝试过@Autowired或@WebServiceRef注释。 有了这些它可以工作,但没有对Web服务做HTTP请求,我想它从本地存储库获取依赖。 我认为我需要的是在Controller上注入这个bean的方法。