当前位置: 首页 > news >正文

公司网站建设 毕业设计深圳网站如何制作

公司网站建设 毕业设计,深圳网站如何制作,城固县网站建设,网站开发工程师心得总结在几周前刚刚发布Apache CXF 3.0时 #xff0c;该项目又迈出了满足JAX-RS 2.0规范要求的又一个重要步骤#xff1a;与CDI 1.1集成。 在此博客文章中#xff0c;我们将看几个有关Apache CXF 3.0和Apache CXF 3.0如何协同工作的示例。 从3.0版开始#xff0c; Apache CXF包含… 在几周前刚刚发布Apache CXF 3.0时 该项目又迈出了满足JAX-RS 2.0规范要求的又一个重要步骤与CDI 1.1集成。 在此博客文章中我们将看几个有关Apache CXF 3.0和Apache CXF 3.0如何协同工作的示例。 从3.0版开始 Apache CXF包含一个名为cxf-integration-cdi的新模块可以轻松将其添加到您的Apache Maven POM文件中 dependencygroupIdorg.apache.cxf/groupIdartifactIdcxf-integration-cdi/artifactIdversion3.0.0/version /dependency 这个新模块仅包含两个组件实际上其中包含一些组件但它们是关键组件 CXFCdiServlet 用于引导Apache CXF应用程序的servlet其作用与CXFServlet和CXFNonSpringJaxrsServlet相同… JAXRSCdiResourceExtension 可移植的CDI 1.1扩展其中发生了所有魔术 在启用CDI 1.1的环境中运行时便携式扩展由CDI 1.1容器发现并使用生命周期事件进行初始化。 这实际上就是您所需要的 让我们看一下实际的应用程序。 我们将构建一个非常简单的JAX-RS 2.0应用程序以使用Apache CXF 3.0和CDI 1.1参考实现JBoss Weld 2.1来管理人员。 我们将用于人物表示的Person类只是一个简单的Java bean package com.example.model;public class Person {private String email;private String firstName;private String lastName;public Person() {}public Person( final String email, final String firstName, final String lastName ) {this.email email;this.firstName firstName;this.lastName lastName;}// Getters and setters are ommited// ... } 现在非常普遍我们将在嵌入式Jetty 9.1容器中运行应用程序而Starter类正是这样做的 package com.example;import org.apache.cxf.cdi.CXFCdiServlet; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.jboss.weld.environment.servlet.BeanManagerResourceBindingListener; import org.jboss.weld.environment.servlet.Listener;public class Starter { public static void main( final String[] args ) throws Exception {final Server server new Server( 8080 );// Register and map the dispatcher servletfinal ServletHolder servletHolder new ServletHolder( new CXFCdiServlet() );final ServletContextHandler context new ServletContextHandler(); context.setContextPath( / ); context.addEventListener( new Listener() ); context.addEventListener( new BeanManagerResourceBindingListener() );context.addServlet( servletHolder, /rest/* );server.setHandler( context );server.start(); server.join(); } } 请注意 CXFCdiServlet和两个强制侦听器已添加到上下文中 org.jboss.weld.environment.servlet.Listener负责CDI注入 org.jboss.weld.environment.servlet.BeanManagerResourceBindingListener将对BeanManager的引用绑定到JNDI位置javacomp / env / BeanManager 以使其可以从应用程序的任何位置访问 这样您就可以使用CDI 1.1的全部功能。 让我们介绍使用Named注释注释的PeopleService类以及使用PostConstruct声明和注释的初始化方法来创建一个人。 Named public class PeopleService {private final ConcurrentMap String, Person persons new ConcurrentHashMap String, Person (); PostConstructpublic void init() { persons.put( ab.com, new Person( ab.com, Tom, Bombadilt ) );}// Additional methods // ... } 到目前为止我们还没有谈到在CDI 1.1环境中配置JAX-RS 2.0应用程序和资源。 原因很简单根据应用程序的不同您可以采用零努力配置或完全可定制的配置。 让我们经历两种方法。 使用零努力配置您可以定义一个空的JAX-RS 2.0应用程序和任意数量的JAX-RS 2.0资源 Apache CXF 3.0隐式地通过将每个资源类与该应用程序相关联来将它们连接在一起。 这是JAX-RS 2.0应用程序的示例 package com.example.rs;import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application;ApplicationPath( api ) public class JaxRsApiApplication extends Application { } 这里是一个JAX-RS 2.0资源PeopleRestService中注入了PeopleService托管bean package com.example.rs;import java.util.Collection;import javax.inject.Inject; import javax.ws.rs.DELETE; import javax.ws.rs.DefaultValue; import javax.ws.rs.FormParam; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo;import com.example.model.Person; import com.example.services.PeopleService;Path( /people ) public class PeopleRestService {Inject private PeopleService peopleService;Produces( { MediaType.APPLICATION_JSON } )GETpublic Collection Person getPeople( QueryParam( page) DefaultValue( 1 ) final int page ) {// ...}Produces( { MediaType.APPLICATION_JSON } )Path( /{email} )GETpublic Person getPerson( PathParam( email ) final String email ) {// ...}Produces( { MediaType.APPLICATION_JSON } )POSTpublic Response addPerson( Context final UriInfo uriInfo,FormParam( email ) final String email, FormParam( firstName ) final String firstName, FormParam( lastName ) final String lastName ) {// ...}// More HTTP methods here // ... } 不需要任何其他操作 Apache CXF 3.0应用程序可以像这样运行并具有完整的功能。 GitHub上提供了示例项目的完整源代码。 请记住如果遵循此样式则仅应声明一个空的JAX-RS 2.0应用程序。 通过可定制的方法可以使用更多选项但是还需要做更多的工作。 每个JAX-RS 2.0应用程序都应提供非空的getClasses或/和getSingletons集合实现。 但是JAX-RS 2.0资源类保持不变。 这是一个示例基本上导致了我们之前所见的相同应用程序配置 package com.example.rs;import java.util.Arrays; import java.util.HashSet; import java.util.Set;import javax.enterprise.inject.Produces; import javax.inject.Inject; import javax.ws.rs.ApplicationPath; import javax.ws.rs.core.Application;import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;ApplicationPath( api ) public class JaxRsApiApplication extends Application {Inject private PeopleRestService peopleRestService;Produces private JacksonJsonProvider jacksonJsonProvider new JacksonJsonProvider(); Overridepublic Set Object getSingletons() {return new HashSet(Arrays.asList( peopleRestService, jacksonJsonProvider ));} } 请注意 JAXRSCdiResourceExtension便携式CDI 1.1扩展会自动为每个JAX-RS 2.0应用程序扩展Application的应用程序 和资源以Path注释创建托管bean。 这样它们立即可用于注入例如上面的代码段中的PeopleRestService 。 类JacksonJsonProvider用Provider注释进行注释因此将被视为JAX-RS 2.0提供程序。 以这种方式定义的JAX-RS 2.0应用程序没有限制。 使用此应用程序的示例项目的完整源代码可在GitHub上获得 。 无论您选择哪种方法我们的示例应用程序都可以正常工作。 让我们构建它并运行 mvn clean packagejava -jar target/jax-rs-2.0-cdi-0.0.1-SNAPSHOT.jar 调用已实现的REST API对可确认应用程序正常运行和配置。 让我们发出GET命令以确保在创建托管bean时调用了以PostConstruct注释的PeopleService方法。 curl http://localhost:8080/rest/api/peopleHTTP/1.1 200 OK Content-Type: application/json Date: Thu, 29 May 2014 22:39:35 GMT Transfer-Encoding: chunked Server: Jetty(9.1.z-SNAPSHOT)[{email:ab.com,firstName:Tom,lastName:Bombadilt}] 这是POST命令的示例 curl -i http://localhost:8080/rest/api/people -X POST -d emailac.comfirstNameTomlastNameKnockerHTTP/1.1 201 Created Content-Type: application/json Date: Thu, 29 May 2014 22:40:08 GMT Location: http://localhost:8080/rest/api/people/ac.com Transfer-Encoding: chunked Server: Jetty(9.1.z-SNAPSHOT){email:ac.com,firstName:Tom,lastName:Knocker} 在此博客文章中我们仅介绍了Apache CXF和CDI 1.1集成现在可以实现的功能。 只需提及在大多数JEE应用程序服务器和Servlet容器上都可以进行嵌入式Apache Tomcat 7.x / 8.x以及基于WAR的带有CDI 1.1的Apache CXF部署。 请查看官方文档并尝试一下 完整的源代码可在GitHub上获得 。 翻译自: https://www.javacodegeeks.com/2014/06/apache-cxf-3-0-cdi-1-1-support-as-alternative-to-spring.html
http://www.zqtcl.cn/news/994822/

相关文章:

  • 网站产品整合推广爱网聊的男人是什么心理
  • 武威市建设厅网站汕头seo外包公司
  • 酒泉网站怎么做seo东莞高明网站设计
  • 沧州网站建设联系电话杭州设计公司logo
  • 网站子站点是什么意思亚马逊国际站官网
  • 影视cms哪个好苏州关键词优化搜索排名
  • 杭州微信网站开发网站优化公司免费咨询
  • 宣武富阳网站建设南昌公众号开发公司
  • 免费的网站推荐下载wordpress %s
  • 网站的原理百度旧版本下载
  • 衡水网站建设地方新网域名证书下载
  • 自己做的创意的网站什么是淘宝seo
  • 网站开发包含哪些网站设计实例
  • 网站建设 核算棋牌源码论坛
  • 杭州网站建设案例网页设计程序
  • 网站建设的相关问题湛江网站开发
  • 网站开发作业wordpress用户角色
  • 品牌网站制作建设微信小程序开发需要什么技术
  • 新网站注册国内食品行业网站开发
  • 太原微商网站建设网站里面的视频功能怎么做的
  • 绿色做环保网站的好处网易企业邮箱登录登录入口
  • 卯兔科技网站建设网站验收时项目建设总结报告
  • 触摸网站手机wordpress建立模板下载
  • 做暧在线观看网站网站建设与管理工资
  • 横岗网站建设无锡网站seo外包
  • 房管局 网站做房查学做网站推广要多久时间
  • 电脑网站开发者模式田园综合体建设网站
  • 南宁广告公司网站建设自适应网站建设模板
  • 做北京电梯招标的网站衡阳县专业做淘宝网站
  • 建设网站的语言wordpress主题自定义添加后台设置