-
Spring 集成CXF 发布webService 服务生成的wsdl文件中没有接口参数信息0
我通过spring+cxf2.7.5 发布了一个java实现的webservie,但是在发布生成的wsdl文件中没有看到接口的参数信息,请问是什么原因?
java服务接口如下@WebService public interface EngineServices { /** * 处方/医嘱审核接口 * @param xml * @param postType * @return */ @WebMethod(operationName="postPres",action="urn:http://services.engine.health.dh.com/EngineServices/postPres") public String postPres( @WebParam(name="xml",targetNamespace="http://services.engine.health.dh.com/") String xml, @WebParam(name="postType",targetNamespace="http://services.engine.health.dh.com/") int postType); // @WebMethod(operationName="postPres",action="urn:http://services.engine.health.dh.com/EngineServices/postPres") // public String postPres( // ); }
服务实现类如下:package com.dh.health.engine.services.impl; import javax.jws.WebParam; import javax.jws.WebService; import com.dh.health.engine.Engine; import com.dh.health.engine.services.EngineServices; import com.dj.tools.StringUtils; /** * * 处方干预服务实现类 */ @WebService(endpointInterface="com.dh.health.engine.services.EngineServices") public class EngineServiceImpl implements EngineServices { /** * @param xml 处方XML数据 * @param postType 提交类型 */ @Override public String postPres( @WebParam(name="xml",targetNamespace="http://services.engine.health.dh.com/") String xml, @WebParam(name="postType",targetNamespace="http://services.engine.health.dh.com/") int postType) { EngineMessage message = new EngineMessage(); if(StringUtils.isEmpty(xml)){ message.setIsSuccess(0); message.setMessage("传过来的XML为空,请检查"); return getBackMessage(message); } try { String ret = Engine.runString(xml,postType+""); if (!ret.startsWith("<infos>")) message.setMessage(ret.replaceAll("<", "<") .replaceAll(">", ">").replaceAll("&", "&")); else { message.setMessage(ret); } message.setIsSuccess(1); return getBackMessage(message); } catch (Exception e) { e.printStackTrace(); message.setIsSuccess(0); message.setMessage(e.getMessage()); return getBackMessage(message); } } // @Override // public String postPres(){ // return "测试合理用药"; // } /** * 返回干预结果 * @param message * @return */ private String getBackMessage(EngineMessage message) { StringBuffer sb = new StringBuffer(); sb.append("<root><message>\n"); sb.append(message.getMessage()+"\n"); sb.append("</message>\n"); sb.append("<isSuccess>\n"); sb.append(message.getIsSuccess()+"\n"); sb.append("</isSuccess>\n"); sb.append("</root>"); return sb.toString(); } } class EngineMessage { private String message; private int isSuccess; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public int getIsSuccess() { return isSuccess; } public void setIsSuccess(int isSuccess) { this.isSuccess = isSuccess; } }
spring配置如下:<jaxws:endpoint id="engineService" implementor="com.dh.health.engine.services.impl.EngineServiceImpl" address="/es" > </jaxws:endpoint>
发布之后生成的wsdl如下:<?xml version="1.0" encoding="GBK"?> -<wsdl:definitions targetNamespace="http://impl.services.engine.health.dh.com/" name="EngineServiceImplService" xmlns:ns1="http://services.engine.health.dh.com/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.services.engine.health.dh.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:import namespace="http://services.engine.health.dh.com/" location="http://192.168.0.234/ws/es?wsdl=EngineServices.wsdl"> </wsdl:import> -<wsdl:binding name="EngineServiceImplServiceSoapBinding" type="ns1:EngineServices"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> -<wsdl:operation name="postPres"> <soap:operation style="document" soapAction="urn:http://services.engine.health.dh.com/EngineServices/postPres"/> -<wsdl:input name="postPres"> <soap:body use="literal"/> </wsdl:input> -<wsdl:output name="postPresResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> -<wsdl:service name="EngineServiceImplService"> -<wsdl:port name="EngineServiceImplPort" binding="tns:EngineServiceImplServiceSoapBinding"> <soap:address location="http://192.168.0.234/ws/es"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
问题补充:postPres 这个方法有两个参数,但是在wsdl中好像没有参数定义的信息2014年5月28日 11:30
目前还没有答案
相关推荐
1. **配置Spring上下文**:首先,我们需要创建一个Spring配置文件,例如`spring-cxf.xml`,在这个文件中,我们会定义CXF的bean,如`JaxWsServerFactoryBean`,用于创建和发布WebService服务。 2. **定义WebService...
4. **配置CXF Endpoint**:在Spring配置文件中配置CXF Endpoint,绑定服务接口和服务实现类。 5. **配置CXF与Spring的整合**:使用CXF提供的Spring命名空间,配置CXF与Spring的整合,如启用CXF的自动扫描功能等。 6....
在给定的压缩包文件中,"WebService_Server"可能包含了SpringBoot与CXF集成的服务器端代码示例,而"Webservice_Client"则可能包含CXF客户端调用服务的示例代码。这两个部分可以作为学习和实践SpringBoot发布和消费...
在日常开发中,通常是由开发团队构建WebService服务端,客户端则通过服务端提供的WS-Definition Language (WSDL) 文件生成客户端代理并进行交互。但有时也会遇到特殊情况,比如与特定企业合作时,对方可能仅提供WSDL...
完成这些配置后,只需启动Spring容器,Apache CXF就会自动发布Web服务,并处理来自客户端的请求。客户端可以通过WSDL文档来发现和调用服务。 在实际项目中,可能还需要处理安全、事务、异常处理等问题。Apache CXF...
4. **创建CXF服务**:在Spring中配置CXF服务,通常需要定义一个服务接口、其实现类,以及对应的WSDL描述。然后,通过`<jaxws:endpoint>`或`<jaxrs:server>`标签在Spring配置文件中声明服务。 5. **调用Web Services...
在本案例中,我们将关注如何通过注解来修改WebService生成的WSDL(Web Services Description Language)信息,以实现服务名称、命名空间、返回值以及调用方法的定制,同时增强服务的安全性。 首先,让我们理解WSDL...
在描述中提到的“WebService—CXF发布服务spring+cxf的doc文档”,意味着这个压缩包可能包含了关于如何使用Spring和CXF来发布Web服务的文档。这些文档通常会包含详细的步骤,指导开发者如何配置Spring XML配置文件,...
在"WebService_CXF_Spring_Tomcat_Client_1"中,可能包含了CXF生成的客户端代码,用于与发布的服务进行交互。 8. **SOAP协议**:SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在分布式环境中...
首先,要发布Web服务,我们需要在Spring配置文件中定义CXF的相关bean。这通常包括`JaxWsServerFactoryBean`,它负责创建并运行Web服务。配置文件可能如下: ```xml <bean id="server" class="org.apache.cxf.jaxws...
在提供的压缩包文件“webService服务接口方案”中,可能包含了具体的代码示例、配置文件和其他参考资料,这些都可以帮助你更好地理解和实践上述步骤。记得根据自己的项目需求进行适当的修改和调整。同时,参考其他...
3. **配置Spring**:在Spring的配置文件中,定义一个Bean来表示我们的服务实现类,并使用`jaxws:endpoint`标签声明CXF的Web服务端点。这样,Spring会自动处理服务的生命周期和依赖注入。 4. **配置CXF**:配置CXF的...
综上所述,这个项目为Java开发者提供了一个使用Spring和CXF构建Web服务的起点,涵盖了从基础架构到具体实现的多个层次,有助于快速启动Web服务开发,并且能够在MyEclipse环境中无缝集成,方便进行进一步的定制和扩展...
CXF提供了`wsdl2java`工具,可以基于Web服务的WSDL文件生成客户端代码。你可以使用Maven的CXF插件或者命令行工具来执行此操作。 生成客户端代码后,你可以在Spring Boot客户端应用中引入这些生成的类,并使用它们来...
本项目“cxf+spring发布webservice和restservice”专注于利用Apache CXF框架与Spring框架结合,实现这两种服务的发布。Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful ...
- 在Spring配置文件中,定义一个`jaxws:client` bean,指定服务地址、服务接口和代理类,配置连接超时、重试策略等参数。 3. **XML请求与响应处理** 在Spring+CXF的环境中,XML请求通常是通过Java对象转换得到的...
WebService CXF是一个强大的开源框架,用于创建和消费Web服务。它允许开发者基于WSDL(Web Service Description Language)文件快速地生成服务端和客户端代码,极大地简化了Web服务的开发流程。在本篇中,我们将深入...
此外,CXF还支持WSDL(Web Service Description Language)第一类公民,这意味着你可以从WSDL文件生成服务代码,或者反之,从服务代码生成WSDL。 描述中的“axis连接webservice所用的jar包”提到了Apache Axis,这...
你可以使用CXF的工具,如wsdl2java,将这个WSDL文件转换为Java客户端代码,然后在项目中引用这些代码来调用Web服务。 总的来说,Apache CXF和camel-cxf提供了强大的工具集,帮助开发者高效地集成和管理Web服务。...