用cxf直接将一个pojo作为WS进行发布,如果想在pojo中读取container的配置参数,由于pojo和Servlet无半点关系,这里借助WebServiceContext,代码:
public class HelloWorld implements IHelloWorld {
@Resource
private WebServiceContext context;
@Override
public String say(String name) {
ServletContext servletContext = (ServletContext)context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
System.out.println(servletContext.getInitParameter("loc"));//loc是web.xml中的<context-param>
System.out.println(servletContext.getInitParameter("loc2"));//loc2是web.xml单独为Servlet配置的<init-param>
System.out.println("================");
try {
System.out.println(this.getClass().getResource("/").toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
return "your name is "+name;
}
定义一个WebServiceContext变量,container会自动注入,因此可以直接使用。
代码参考: http://stackoverflow.com/questions/261348/how-can-i-access-the-servletcontext-from-within-a-jax-ws-web-service
同时感谢群里的tank大牛。
但这里有个问题:就是只能取<context-param>中的参数,单独为<servlet>配置的参数取不到。
其实还有一个解决方法:继承CXFServlet,然后重写里面相应的方法。
分享到:
相关推荐
4. **配置CXF**:在你的Ant构建文件build.xml中,配置CXF相关的任务,例如使用`cxf-codegen-plugin`生成WSDL或者Java接口,使用`cxf-servlet`部署服务到应用服务器。 5. **编译和运行**:通过运行Ant命令(如`ant ...
在CXF中,我们通常通过JAX-WS(Java API for XML Web Services)规范来实现。首先,我们需要定义一个Java接口,这个接口会成为我们的服务接口。接口中的方法将成为Web服务的操作。例如: ```java import javax.jws....
Spring CXF模块提供了Spring Bean的配置方式来创建和管理Web服务,这包括服务发布、客户端代理生成以及异常处理等。通过Spring的XML配置或Java配置,你可以轻松地将CXF服务集成到Spring应用中。 "apache-cxf-2.5.9...
- 将CXF的Servlet配置到Web应用的`web.xml`中,以便在服务器启动时加载REST服务。 - 使用HTTP客户端工具,如curl或Postman,进行REST服务的测试。发送GET、POST等请求,查看JSON响应。 5. **安全考虑**: - 考虑...
这个"**cxf-2.7.18**"版本是CXF项目的一个特定发布,它包含了该框架在2.7.x系列中的第18次更新。CXF允许开发者创建和消费各种Web服务,支持多种协议和规范,如SOAP、RESTful HTTP、WS-*(如WS-Security)等。 CXF的...
- **Servlet配置**:在`web.xml`中配置CXF Servlet以及其映射规则。这通常包括对CXFNonSpringServlet的配置。 #### 三、发布服务 ##### 1. Endpoint配置 - **发布方式**:在`WebServiceServlet`类的`loadBus`方法...
5. **CXF配置**:介绍CXF的配置文件(如cxf-servlet.xml),包括端点地址设置、服务发布等。 6. **测试与调试**:讲解如何通过CXF的测试工具或直接发送HTTP请求进行服务测试,以及如何进行调试。 7. **部署服务**...
要发布自己的Java接口作为Web服务,首先需要在`web.xml`配置文件中声明`CXFServlet`,如下所示: ```xml <servlet-name>CXFServlet <servlet-class>org.apache.cxf.transport.servlet.CXFServlet ...
1. **cxf-rt-frontend-jaxws**:这是CXF的核心组件之一,提供了JAX-WS(Java API for XML Web Services)的实现,用于创建和处理SOAP消息。 2. **cxf-rt-transports-http**:这个模块提供了HTTP传输的支持,是CXF...
2. **POJO(Plain Old Java Object)**:在CXF中,POJO方式发布Web服务意味着你可以使用普通的Java类来定义服务接口和服务实现,无需继承特定的框架类或实现特定的接口。这种模式提高了代码的可读性和可维护性,因为...
尽管AXIS2在某些方面可能不如CXF成熟,例如不支持WS-Policy(但计划在未来版本中添加),但AXIS2提供了更广泛的数据绑定选项。另一方面,CXF在WS-*规范的支持上更为全面,且与Spring的深度集成使其在开发环境中更受...
在描述中提到的“服务端发布”是指通过 CXF 创建并发布 Web 服务,这通常涉及到以下步骤: 1. 创建服务接口和实现。 2. 在 Spring 配置文件中声明服务和终结点。 3. 配置 CXF 载体(如 HTTP 或 JMS)。 4. 启动服务...
CXF支持在WebService中传递复杂类型的对象,这通常通过序列化对象为XML实现。复杂类型可以是自定义的Java类,也可以是POJO(Plain Old Java Object)。 1. **定义复杂类型**: - 使用`@XmlRootElement`注解定义根...
在实例API中,你将找到各种示例代码和教程,帮助理解如何使用CXF来创建、部署和调用Web服务。这些例子通常涵盖服务端的配置、服务接口定义、服务实现、客户端调用等多个方面,是初学者快速上手的好资料。 CXF也支持...
压缩包中的"Conversion"文件可能包含了关于CXF转换机制的相关内容,这通常指的是CXF如何处理不同类型的数据格式,比如XML到Java对象的映射,或者JSON与POJO之间的转换。在CXF中,数据绑定组件如JAXB(Java ...
gSOAP支持XML数据绑定和自动类型转换,简化了在C++中处理Web服务的过程。 3. **Java CXF** Java CXF是一个开源的Java框架,用于构建和消费Web服务。它支持多种协议和标准,如SOAP、RESTful HTTP、XML和JSON。CXF...
3. **CXF 服务端实现**:在 CXF 中,你可以使用 JAX-WS(Java API for XML Web Services)规范来创建服务端点。通过注解 @WebService,可以在一个类上声明它是 WebService 的实现,然后使用 CXF 提供的 Server 类...
1. **服务发布**:通过注解或XML配置的方式,CXF可以轻松地发布Web服务。 2. **服务消费**:CXF同样支持便捷地调用外部提供的Web服务。 3. **Spring配置**:利用Spring的配置文件,可以管理CXF的各种设置,如端口、...
- **配置web.xml**:为了使Web Service在服务器上运行,需要在web.xml文件中进行相应的配置,包括Servlet的映射和初始化参数。 - **使用JSR181注解导出WebService**:JSR181注解提供了更为简洁的方式来声明Web ...
在本案例中,"webservices"指的是与创建和使用Web服务相关的技术,特别是关注客户端的生成。Apache CXF是一个开源框架,专门用于构建和消费Web服务,它提供了强大的功能来简化开发过程。 Apache CXF 2.7.10是这个...