0 0

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("<", "&lt;")
						.replaceAll(">", "&gt;").replaceAll("&", "&amp;"));
			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
目前还没有答案

相关推荐

    Spring+CXF 发布WebService服务

    1. **配置Spring上下文**:首先,我们需要创建一个Spring配置文件,例如`spring-cxf.xml`,在这个文件中,我们会定义CXF的bean,如`JaxWsServerFactoryBean`,用于创建和发布WebService服务。 2. **定义WebService...

    spring集成cxf(webservice)

    4. **配置CXF Endpoint**:在Spring配置文件中配置CXF Endpoint,绑定服务接口和服务实现类。 5. **配置CXF与Spring的整合**:使用CXF提供的Spring命名空间,配置CXF与Spring的整合,如启用CXF的自动扫描功能等。 6....

    SpringBoot框架及CXF发布WebService

    在给定的压缩包文件中,"WebService_Server"可能包含了SpringBoot与CXF集成的服务器端代码示例,而"Webservice_Client"则可能包含CXF客户端调用服务的示例代码。这两个部分可以作为学习和实践SpringBoot发布和消费...

    根据wsdl生成webservice服务端(3种方式)

    在日常开发中,通常是由开发团队构建WebService服务端,客户端则通过服务端提供的WS-Definition Language (WSDL) 文件生成客户端代理并进行交互。但有时也会遇到特殊情况,比如与特定企业合作时,对方可能仅提供WSDL...

    Apache CXF2+Spring2.5轻松实现WebService

    完成这些配置后,只需启动Spring容器,Apache CXF就会自动发布Web服务,并处理来自客户端的请求。客户端可以通过WSDL文档来发现和调用服务。 在实际项目中,可能还需要处理安全、事务、异常处理等问题。Apache CXF...

    Spring集成Cxf调用WebServices

    4. **创建CXF服务**:在Spring中配置CXF服务,通常需要定义一个服务接口、其实现类,以及对应的WSDL描述。然后,通过`&lt;jaxws:endpoint&gt;`或`&lt;jaxrs:server&gt;`标签在Spring配置文件中声明服务。 5. **调用Web Services...

    webservice注解修改生成wsdl信息

    在本案例中,我们将关注如何通过注解来修改WebService生成的WSDL(Web Services Description Language)信息,以实现服务名称、命名空间、返回值以及调用方法的定制,同时增强服务的安全性。 首先,让我们理解WSDL...

    spring+cxf的webservice

    在描述中提到的“WebService—CXF发布服务spring+cxf的doc文档”,意味着这个压缩包可能包含了关于如何使用Spring和CXF来发布Web服务的文档。这些文档通常会包含详细的步骤,指导开发者如何配置Spring XML配置文件,...

    CXF+Spring+Tomcat发布WebService

    在"WebService_CXF_Spring_Tomcat_Client_1"中,可能包含了CXF生成的客户端代码,用于与发布的服务进行交互。 8. **SOAP协议**:SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在分布式环境中...

    Spring+CXF发布webservice

    首先,要发布Web服务,我们需要在Spring配置文件中定义CXF的相关bean。这通常包括`JaxWsServerFactoryBean`,它负责创建并运行Web服务。配置文件可能如下: ```xml &lt;bean id="server" class="org.apache.cxf.jaxws...

    发布webService服务接口与spring整合教程

    在提供的压缩包文件“webService服务接口方案”中,可能包含了具体的代码示例、配置文件和其他参考资料,这些都可以帮助你更好地理解和实践上述步骤。记得根据自己的项目需求进行适当的修改和调整。同时,参考其他...

    运用spring和CXF开发webservice

    3. **配置Spring**:在Spring的配置文件中,定义一个Bean来表示我们的服务实现类,并使用`jaxws:endpoint`标签声明CXF的Web服务端点。这样,Spring会自动处理服务的生命周期和依赖注入。 4. **配置CXF**:配置CXF的...

    spring+cxf 开发webservice

    综上所述,这个项目为Java开发者提供了一个使用Spring和CXF构建Web服务的起点,涵盖了从基础架构到具体实现的多个层次,有助于快速启动Web服务开发,并且能够在MyEclipse环境中无缝集成,方便进行进一步的定制和扩展...

    Springboot整合CXF发布Web service和客户端调用(用户和密码验证)

    CXF提供了`wsdl2java`工具,可以基于Web服务的WSDL文件生成客户端代码。你可以使用Maven的CXF插件或者命令行工具来执行此操作。 生成客户端代码后,你可以在Spring Boot客户端应用中引入这些生成的类,并使用它们来...

    cxf+spring发布webservice和restservice

    本项目“cxf+spring发布webservice和restservice”专注于利用Apache CXF框架与Spring框架结合,实现这两种服务的发布。Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful ...

    Spring+cxf请求webService

    - 在Spring配置文件中,定义一个`jaxws:client` bean,指定服务地址、服务接口和代理类,配置连接超时、重试策略等参数。 3. **XML请求与响应处理** 在Spring+CXF的环境中,XML请求通常是通过Java对象转换得到的...

    WebService CXF --- 由WSDL文件开发Client端

    WebService CXF是一个强大的开源框架,用于创建和消费Web服务。它允许开发者基于WSDL(Web Service Description Language)文件快速地生成服务端和客户端代码,极大地简化了Web服务的开发流程。在本篇中,我们将深入...

    使用CXF发布WebService

    此外,CXF还支持WSDL(Web Service Description Language)第一类公民,这意味着你可以从WSDL文件生成服务代码,或者反之,从服务代码生成WSDL。 描述中的“axis连接webservice所用的jar包”提到了Apache Axis,这...

    使用CXF和camel-cxf调用webservice

    你可以使用CXF的工具,如wsdl2java,将这个WSDL文件转换为Java客户端代码,然后在项目中引用这些代码来调用Web服务。 总的来说,Apache CXF和camel-cxf提供了强大的工具集,帮助开发者高效地集成和管理Web服务。...

Global site tag (gtag.js) - Google Analytics