新浦京81707con > 首页 > Spring开发环境搭建小试,项目目录结构

原标题:Spring开发环境搭建小试,项目目录结构

浏览次数:78 时间:2019-11-07

在付出以前大家经常必要做些思虑干活,举个例子搭建好开采境况。在本教程中,大家就要Eclipse 3.2 情状中付出,当然假设你是行使 Eclipse Europa(Eclipse 3.3卡塔 尔(阿拉伯语:قطر‎也是能够的,大家假使您曾经下载况且在计算机中装置好了 Eclipse 开垦景况。

Apache CXF 简介

怒放源代码的劳动框架

 

简介:  本课程介绍了 Apache CXF 服务框架的基本知识,并通过讲课自带的事例来最初体验通过 CXF 举办劳动的发表与开支;然后搭建基于 Eclipse 的 Apache CXF 开荒条件,并因此一个“考察投票”示例应用程序来演示 CXF 整合 Spring 2.0 的着力开销进度。

CXF 应用开采

上边就将伊始大家的 CXF Web Services 的开荒之旅!首先,要有八个遵照Eclipse 的开支蒙受;然后,我们将运用那几个开采条件开垦三个粗略的“考察投票”示例,同一时间大家将降解一些 CXF 在付出中开展布局的主干措施。

支出条件计划

在付出早前大家日常必要做些酌量干活,譬如搭建好开辟境遇。在本教程中,大家将要Eclipse 3.2 蒙受中费用,当然倘诺您是运用 Eclipse Europa(Eclipse 3.3卡塔 尔(英语:State of Qatar)也是可以的,我们借使您曾经下载何况在微机中安装好了 Eclipse 开垦意况(关于什么下载和设置 Eclipse,请参见 参照财富)。


回页首

始建项目骨架

起步 Eclipse,创造三个 Java Project,如若是 WTP 的话,能够直接创建一个J2EE 的 Web 项目,大家取名称为 CXF_Spring_Survey,并安装编译的 output 路线为 WEB-INF/classes 目录,方便直接配备应用程序。

目录结构如下图所示:

图 4. 利用 CXF 开荒 Web 瑟维斯s 的工程骨架暗暗表示图
葡京游戏网址 1

为了有扶持起见,大家一向拷贝 %CXF_HOME%/lib 目录下的具备 .jar 文件到 CXF_Spring_Survey 项目标 WEB-INF/lib 目录下,也得以依照前边“CXF 安装包”章节所述的相继 jar 包的作用范围选择仅须求的 .jar 文件。在 Eclipse 里刷新后,能够看看如下结构:

图 5. 接纳 CXF 开采 Web 瑟维斯s 的工程引进全数 .jar 文件后的龙骨暗暗提示图
葡京游戏网址 2

并在 CXF_Spring_Survey 项目性质里将这一个 .jar 加到 Java Build Path 个中去,如下图:

图 6. Eclipse 中引进全部 .jar 文件后的暗意图
葡京游戏网址 3

如此那般,项指标中央骨架业已创办完毕,接下去开端编写制定接口与现实贯彻的代码了。


回页首

接口类成立

在项目标 src 目录中新建三个 ws.cxf 包,并在个中创立接口类 ISurveyService.java,为了轻松示示例起见,我们仅创造一个措施 public String vote(String username,int point); 这里要专心的是我们在接口上用 @WebService 评释申明那是叁个就要揭穿为 Web Service 的接口,并将内部的不二等秘书诀都展揭露来。完整的接口代码清单如下:

package ws.cxf;

import javax.jws.WebService;

@WebService
public interface ISurveyService
{
    /**
     * @param username 名字
     * @param point 分数
     * @return
     */
    public String vote(String username,int point);
}

接下去,大家依照接口的概念,来促成它。


回页首

现实类完毕

针对接口的定义,大家创制一个应和的兑现类,并将其定义在 sw.cxf.impl 包中,完整的代码清单如下:

package ws.cxf.impl;

import javax.jws.WebService;
import ws.cxf.ISurveyService;

@WebService
public class SurveyService implements ISurveyService
{
    private String excludeName = "Michael";
    private int leastPonit = 5;

    public String vote(String username,int point)
    {
        String result = "";
        if(excludeName.equals(username))
        {
            result = " 您不能重复进行投票!";
        }
        else
        {
            result = " 谢谢您的投票!";
            if(point < leastPonit)
            {
                result  = " 您的投票分数太低!";
            }
            else
            {
                result  = " 您的投票分数通过审核!";
            }
        }
        return result;
    }

    // For IoC
    public String getExcludeName()
    {
        return excludeName;
    }

    public void setExcludeName(String excludeName)
    {
        this.excludeName = excludeName;
    }

    public int getLeastPonit()
    {
        return leastPonit;
    }

    public void setLeastPonit(int leastPonit)
    {
        this.leastPonit = leastPonit;
    }
}

接口定义与实际的完结就这么轻易完成了,接下去正是有关的布置专门的学问了,首先举行Spring 的 Bean 配置。


回页首

Spring 配置

在 src 目录中开创 beanRefServer.xml 文件,用来定义 Spring 的 Bean 的布置,CXF 援助 Spring 2.0 Schema 标签配置情势,并且提供火速暴光 Web Services 的价签。

首先,大家需求引入 Spring 与 CXF 的命名空间(namespace卡塔 尔(英语:State of Qatar),如下:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://cxf.apache.org/jaxws 
        http://cxf.apache.org/schemas/jaxws.xsd">

如此,大家得以应用 Spring 与 CXF 的标签配置了。接着,我们要求引进大家所急需的 CXF 的 Bean 定义文件,如下:

    <!-- Import Apache CXF Bean Definition -->
    <import resource="classpath:META-INF/cxf/cxf.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

随着定义大家切实完毕的 Bean ,那个 Bean 的概念与 Spring 普通的 Bean 定义是豆蔻年华律的:

    <!-- SurveyService -->
    <bean id="surveyService" class="ws.cxf.impl.SurveyService">
        <property name="excludeName" value="Michael"/>
        <property name="leastPonit" value="10"/>
    </bean>

末段,将概念的 Bean 暴表露来成为 Web Service 服务,通过 CXF 提供的 Schema 标签配置 <jaxws:server> ,那样定义的安排显得特别简洁与福利,定义如下:

    <!-- Expose SurveyWebService -->
    <jaxws:server id="surveyWebService" 
        serviceClass="ws.cxf.ISurveyService" 
        address="/SurveyWebService">
        <jaxws:serviceBean>
            <ref bean="surveyService"/> <!-- 要暴露的 bean 的引用 -->
            </jaxws:serviceBean>
    </jaxws:server>

在配置中,serviceClass 的值是大家的接口类的称谓,address 为就要暴表露来的 Web Service访谈地址。举个例子:/SurveyWebService,那么客商端开支 Web Service之处就能够成为 ,与之相应的 WSDL 地址则为: 。


回页首

Web 应用配置

是因为大家的示范是急需通过 Servlet 容器进行服务揭发,因而要求配置相呼应的 web.xml 文件,首先是扩充 Spring 的布置文件加载 Listener,如下:

    <!-- Spring Config Location -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/classes/beanRefServer.xml</param-value>
    </context-param>
    <!-- Spring ContextLoaderListener -->
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

接下去配置 CXF Servlet 的定义,以致它的映照,如下:

    <!-- Apache CXFServlet -->
    <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <display-name>CXF Servlet</display-name>
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- CXFServlet Mapping -->
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

我们将之映射为 /* 。这样,服务端的代码与布局就全数完事了,接下去正是将应用程序安排到 Web 容器中去,并证实服务是不是正规公布。


回页首

行使安插

大家将利用计划到 汤姆cat 5.5.25 个中,在这里处,我们接纳链接(Link卡塔 尔(英语:State of Qatar)的安顿格局,轻易而平价,在 %TOMCAT_HOME%/conf/Catalina/localhost/ 目录下创办与项目名称 CXF_Spring_Survey 一致的 xml 文件:CXF_Spring_Survey.xml,内容为:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="F:/JavaProject/WebService/CXF/CXF_Spring_Survey"/>

docBase 里的剧情传闻你的实在项目所在的目录举办转移,注意运用 / 而不是 即可。


回页首

开发银行服务

那个时候初叶起步 汤姆cat ,在运行的进程中,能够在开发银行窗口上观望以链接方式配置的利用在起步中会打字与印刷出一些互为表里音信来,最终呈现运行成功。通过访谈 能够看来 CXF 暴光的服务链接:

图 7. CXF 拆穿的劳动链接的剧情暗暗提示图
葡京游戏网址 4

能够一贯点击步向,大概手工业输入 WSDL 的地址举办访谈: ,能够阅览如下的 WSDL 内容:

图 8. SurveyWebService 的 WSDL 内容暗指图
葡京游戏网址 5

这么,大家得以鲜明大家的劳务真正公布成功了,接下去就足以应用客商端举办花销了。


回页首

开支服务

归来 Eclipse 开荒平台,开头编写制定花费服务相关的代码,首先通过 Spring 与 CXF 的计划来定义 Web Service 的客商端 Bean,在 src 目录下创办 beanRefClient.xml 配置文件,相符,大家也急需引进 Spring 与 CXF 命名空间的宣示,并引进 CXF 的 Bean 的概念文件,最终通过与服务端配置绝没错 CXF 标签 <jaxws:client> 来定义客商端访谈服务的宣示,完整的概念内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://cxf.apache.org/jaxws 
        http://cxf.apache.org/schemas/jaxws.xsd">
    <!-- Import Apache CXF Bean Definition -->
    <import resource="classpath:META-INF/cxf/cxf.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

    <!-- SurveyWebService Client -->
    <jaxws:client id="surveyServiceClient" 
        serviceClass="ws.cxf.ISurveyService" 
        address="http://localhost:8080/CXF_Spring_Survey/SurveyWebService"/>
</beans>

概念说明:id 为 Spring 定义的 id,用来在前后相继里举办获取它的标记,serviceClass 仍然为为服务端定义的接口类,address 为全体的 Web Service地址,这些与服务端的概念不均等。

概念完配置文件,接下去大家编辑访谈的具体代码,在 test 目录下创制 ws.cxf.client 包,然后成立 SurveyServiceClient.java,完整的代码如下:

package ws.cxf.client;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import ws.cxf.ISurveyService;

public class SurveyServiceClient
{
    public static void main(String[] args)
    {
        // 加载客户端的配置定义
        ApplicationContext context = new 
                ClassPathXmlApplicationContext("beanRefClient.xml");
        // 获取定义的 Web Service Bean
        ISurveyService surveyService = 
            (ISurveyService)context.getBean("surveyServiceClient");
        // 1、定义调查投票的变量与内容,用来发送给服务
        String username = "Test";
        int point = 88;
        // 调用方法进行服务消费
        String result = surveyService.vote(username,point);
        System.out.println("Result:"   result);
        // 2、传递不一样的调查投票内容
        username = "Michael";
        point = 100;
        // 再次调用方法进行服务消费,得到不一样的结果
        result = surveyService.vote(username,point);
        System.out.println("Result:"   result);
        // 3、第三次传递与调用
        username = "Jordan";
        point = 9;
        result = surveyService.vote(username,point);
        System.out.println("Result:"   result);
    }
}

直白运营以上客商端费用程序,生龙活虎共调用了三遍 Web Service,并获得结果如下:

Result: 谢谢您的投票!您的投票分数通过审核!
Result: 您不能重复进行投票!
Result: 谢谢您的投票!您的投票分数太低!

于是乎服务符合规律地获得了调用,并且能够正确地回去结果,完整的代码及布局文件能够在本教程的 下载链接 里进行下载。

汤姆cat 目录结构

一张图消除:

Tomcat 目录

如此,项目标宗旨骨架业已创建完结,接下去初阶编写制定接口与具体贯彻的代码了。

正文子禽不遗余力对 java web 项目标目录结构做出最详尽的解释,尽量做到浅显易懂。

并在 CXF_Spring_Survey 项目性质里将那几个 .jar 加到 Java Build Path 在这之中去,如下图:

eclipse web 项目目录结构

java web 项目事例

  • 03-springmvc-drien-xgq 是开创的品类名字,那些名字本身能够不管成立,只要顺应命名准则。
  • srcsrc_test 里面放的是 java 源程序,也正是你写的 java 代码,在那间为了管住有支持小编只是把原 src 中庸之道,产生 src 和 src_test。
  • JRE System Library: 指Java SE 的常用库文件集合,也正是 jar 包,创设平常的Java项目均会接受;比方在本身这些类型中,JRE System Library 的情节如下所示:

  • Apache Tomcat v7.0 是指那个项目所凭仗的服务器(汤姆cat卡塔尔的目录。

  • Web App Libraries 是和谐导入的品种注重 jar 包,Web App Libraries 下的保有 jar 包都得以在该地的项目名WebContentWEB-INFlib 中找到。如若您一直在WEB-INF/lib文件夹下,copy 贰个 jar 包,刷新一下,会自动编写翻译到 Web App Library 中。

  • Referenced Libraries 是编写翻译蒙受下采用的 jar 包, 所谓编写翻译景况下使用的 jar 包, 就是说你在 Eclipse 中开展源文件的编纂的时候, 所须求援引到的类都从 Referenced Libraries 那些会集中的 jar 包中拿。这里导入和配置 ja r包,都是为了让 web 工程能够在 eclipse 开拓条件足以符合规律编写翻译,不报错而已。

  • build:eclipse新建的 Dynamic web project 暗中同意是将类编写翻译在 build 文件夹下。能够在地面包车型大巴项目名buildclasses 下查看。

  • WebContent:雷同大家用 Eclipse 的时候创设一个 Web Project,就能调换 WebContent 文件夹,用 MyEclipse 的时候创立八个 Web Project,就能变动 WebRoot 文件夹,那多少个文本夹功用相近只是称呼不相同而已。WebContent 用来存放在 JSP,JS,CSS,图片等文件,是体系访谈的私下认可路线,也是工程的发布文件夹,发布时会把该公文夹公布到 tomcat 的 webapps 里。

  • common:用来置放在公用的 JSP,JS,CSS,图片等文件。

  • META-INF:寄放一些 meta information 相关的公文的如此三个文件夹, 平时的话尽量不要本身手工业放置文件到这一个文件夹。

  • WEB-INF:WEB-INF 目录是四个专项使用区域, 容器无法把此目录中的内容提须求客商。这么些目录下的公文只供容器使用,里面包含不应有由客商直接下载的资源。Web 容器要求在你的应用程序中必得有 WEB-INF 目录。WEB-INF 中蕴藏着公布描述符(也正是 web.xml 文件卡塔尔国, 一个 classes 目录和三个lib目录, 以至别的内容。注意: 若是你的 Web 应用程序中一向不包蕴这几个目录, 它可能将不能够专门的工作 。

  • web.xml:葡京游戏网址,颁发描述符(deployment descriptors)是 J2EE Web 应用程序不可分割的生龙活虎有个别(相当于说是它的细微部分, 必不可少的后生可畏有的)。它们在应用程序发布之后协助管理 Web 应用程序的配备。

  • WEB-INF/classes 目录,编写翻译后的 Java类,那一个文件夹是可选的。有部分配备文件要求停放 WEB-INF 的 classes 文件夹下,所以,经常的做法是手动在工程的 WEB-INF 文件夹下构建 classes 文件夹。如果不在工程的 WEB-INF 动手动创设classes,宣布到 tomcat 时 tomcat 里的WEB-INF 中也有 classes 文件夹。

  • WEB-INF/lib 目录,该目录中的 jar 包是运维时意况下使用的 jar 包, 所谓运营时碰着下利用的 jar 包,便是说你在运维你的类别的时候所急需选取的 jar 包的汇集。

  • index.jsp:首页页面

图 5. 选取 CXF 开拓 Web Services 的工程引入全部 .jar 文件后的龙骨暗指图
葡京游戏网址 6

葡京游戏网址 7

本文由新浦京81707con发布于首页,转载请注明出处:Spring开发环境搭建小试,项目目录结构

关键词: 程序员 Spring java WebService

上一篇:澳门葡京真人网址Linux下源码搭建Bind服务器,快

下一篇:没有了