Tag: cxf

如何在Eclipse中使用CXF来使用WebService

我正在尝试使用Eclipse和Apache CXF使用WEBSERVICE( http://www.detecno.mx/WCFTimbrador/DetecnoPac.svc?wsdl )。 我已经从http://cxf.apache.org/下载了最新的Apache CXF版本(2.5.2),并且已经在Eclipse首选项> Web服务> CXF 2.x首选项中配置了它的位置 尝试在我的项目中创建新的Web服务客户端时,我无法选择Apache CXF作为WS运行时(禁用“确定”按钮) 我的项目不是一个动态的Web项目,它与此有关吗? 它是一个普通的Java项目,其JAR包含在其他动态Web项目中。

手动解析MTOM消息

我将mtom响应作为字符串 –uuid:6b6fab3b-c481-4648-9eb5-8690096eb54d Content-Type: application/xop+xml; charset=UTF-8; type=”application/soap+xml”; Content-Transfer-Encoding: binary Content-ID: GIB-XXXX-201512-KB-000000.zip –uuid:6b6fab3b-c481-4648-9eb5-8690096eb54d Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-ID: Content-Disposition: attachment;name=”GIB-XXXX-201512-KB-000000.zip” /***********MTOM Content****************/ –uuid:6b6fab3b-c481-4648-9eb5-8690096eb54d– 我正在使用CXFunit testing代码来解析有关xop / mtom解析的上述内容 附件始终为null并且在执行itr.next()时; 一行,我得到exceptionjava.lang.IndexOutOfBoundsException:索引:0,大小:0 InputStream is = null; InputStream attIs = null; try { org.apache.cxf.message.Message cxfMessage = new MessageImpl(); is = new ByteArrayInputStream(response.getBytes(“UTF-8”)); // FileInputStream fis = new FileInputStream(new File( // “D:/wss/gibreturn.txt”)); […]

如何在将来取消时在Callable中终止CXF Web服务调用

编辑 这个问题到目前为止已经经历了几次迭代,所以请随意查看修订版本以查看有关历史和所尝试事项的一些背景信息。 我正在使用CompletionService和ExecutorService以及Callable,通过CXF生成的代码同时调用几个不同的Web服务上的许多函数。这些服务都为我用于的一组信息提供不同的信息。我的项目。 但是,服务可能无法长时间响应而不会抛出exception,从而延长了等待组合信息的时间。 为了解决这个问题,我正在同时运行所有服务调用,并且在几分钟之后想要终止任何尚未完成的调用,并且最好记录哪些调用尚未完成,或者通过抛出一个详细的例外。 这里有一些高度简化的代码来说明我已经在做什么: private Callable<List> getXXXFeatures(final WiwsPortType port, final String accessionCode) { return new Callable<List>() { @Override public List call() throws Exception { List features = new ArrayList(); //getXXXFeatures are methods of the WS Proxy //that can take anywhere from second to never to return for (RawFeature raw : port.getXXXFeatures(accessionCode)) { Feature […]

如何使用基本身份validation配置Camel CXF

我是Apache Camel和CXF的新手, 我正在尝试创建一个查询远程WS的路由,该路由需要基本身份validation并指定Soap Action标头。 我能够使用camel HTTP组件实现相同的function,但我需要在java DSL中使用相同的驼峰CXF 任何人都可以指导我们修复相同的问题

CXF抛出任何政策选择都不能满足

我正在尝试使用CXF为.NET Web服务编写Java客户端,但在调用“client.getConduit()”时,它会抛出exception – org.apache.cxf.ws.policy.PolicyException:不能满足任何策略备选方案。 请帮忙! 这是代码片段 – ServiceClass service = new ServiceClass(); PortClass port = service.getPort(ServiceClass.class); Client client = ClientProxy.getClient(port); HTTPConduit httpConduit = (HTTPConduit) client.getConduit(); final HTTPClientPolicy httpClientPolicy = httpConduit.getClient(); httpClientPolicy.setAllowChunking(false); httpClientPolicy.setAutoRedirect(true); final BindingProvider bindingProvider = (BindingProvider) port; final Map requestContext = bindingProvider.getRequestContext(); final Credentials credentials = new NTCredentials(USERNAME, PASSWORD, “”, DOMAIN); requestContext.put(Credentials.class.getName(), credentials); requestContext.put(AsyncHTTPConduit.USE_ASYNC, […]

注释CXF(wsdl2java)生成的包

我需要添加包级别注释(XmlJavaTypeAdapters类型适配器)。 问题是,当我运行wsdl2java时,它会为该包生成package-info.java文件。 当我尝试添加自己的package-info.java时,我收到错误:“类型package-ingo已经定义”。 有没有办法将我的注释注入package-info.java? 也许还有其他想法吗? 谢谢

使用Apache CXF通过REST解析String 请求参数

我目前正在尝试使用CXF 2.6.4为REST应用程序开发一个简单的概念certificate。 我正采取非弹簧方法。 我正在使用JBoss AS 7.1.1 Final作为我的Web服务器。 以下是我的Web服务类: package restful.webservice; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import restful.entity.ControllerVersion; @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class WebServiceRest implements WebServiceInterface { @Override @POST @GET @Path(“/getVersion”) public ControllerVersion getVersion(String deviceID, String[] macAddresses) { return new ControllerVersion(); } } ControllerVersion类: package restful.entity; @XmlRootElement(name = “ControllerVersion”) public […]

调用webservice的问题 – javax.xml.ws.WebServiceException和类没有名称的属性

我有一个wsdl文件,很多xsd文件,jxb绑定文件。 我使用Apache CXF cxf-codegen-plugin创建了一个Web服务客户端。 创建Java类时没有任何错误。 但是当我尝试调用任何生成的方法时,我得到一个exception: Exception in thread “main” javax.xml.ws.WebServiceException: class com.amadeus.xml.pnracc_11_1_1a.PNRReply do not have a property of the name {http://xml.amadeus.com/PNRACC_11_1_1A}PNR_Reply 我像这样调用webservice方法(不要担心空值): AmadeusWebServices aws = new AmadeusWebServices(); aws.getAmadeusWebServicesPort().fareMasterPricerCalendar(null, null); 堆栈跟踪: Exception in thread “main” javax.xml.ws.WebServiceException: class com.amadeus.xml.pnracc_11_1_1a.PNRReply do not have a property of the name {http://xml.amadeus.com/PNRACC_11_1_1A}PNR_Reply at com.sun.xml.internal.ws.client.sei.ValueSetter$AsyncBeanValueSetter.(ValueSetter.java:165) at com.sun.xml.internal.ws.client.sei.ValueSetterFactory$AsyncBeanValueSetterFactory.get(ValueSetterFactory.java:67) at com.sun.xml.internal.ws.client.sei.SEIMethodHandler.buildResponseBuilder(SEIMethodHandler.java:163) at com.sun.xml.internal.ws.client.sei.AsyncMethodHandler.(AsyncMethodHandler.java:121) […]

如何使用WSS4J拦截器在Web服务方法中获取经过身份validation的用户

我在Spring中托管了Apache CXF服务。 我正在使用WSS4J拦截器来validation用户名/密码安全性以访问服务器。 validation工作正常,如果我从SoapUI发送错误的凭据我不能按预期使用该服务。 如果我发送正确的凭据,服务没有问题。 这是我在spring上下文文件中的配置。 <!—-> 现在我需要能够在我的服务方法中访问我的身份validation用户,如下所示: @WebResult(name = “UpdatePatternResponse”, targetNamespace = “http://test.com/schemas/xsd/myservice/”, partName = “UpdatePatternResponse”) @WebMethod(operationName = “UpdatePattern”, action = “UpdatePattern”) @Generated(value = “org.apache.cxf.tools.wsdlto.WSDLToJava”, date = “2015-02-19T12:49:59.491-05:00”) public test.com.schemas.xsd.myservice.UpdatePatternResponse updatePattern( @WebParam(partName = “UpdatePatternRequest”, name = “UpdatePatternRequest”, targetNamespace = “http://test.com/schemas/xsd/myservice/”) test.com.schemas.xsd.myservice.UpdatePatternRequest updatePatternRequest ) throws SIASFaultMessage{ . . User myAuthenticatedUser = //HOW TO GET THE […]

停止Apache CXF记录MultipartBody附件的二进制数据

我需要阻止CXF在MultipartBody对象中记录附件的二进制数据(由出站消息中的AbstractLoggingInterceptor抛出)。 当我添加我的LoggingInInterceptor ,我将setShowBinaryData设置为false,但这似乎不会阻止多部分消息中的二进制数据被记录。 我不确定是否需要创建自定义loggingInInterceptor,或者是否有一种配置现有拦截器的方法来截断它找到的任何二进制数据。 停止它完全记录MultipartBody响应,或截断数据都是可接受的解决方案。