专栏首页白石使用Eclipse来开发调试WebBuilder项目

使用Eclipse来开发调试WebBuilder项目

使用Eclipse来开发调试WebBuilder项目

下载,安装Groovy插件:

下载地址: Groovy-Eclipse

下载,安装Tomcat插件:

下载地址: Tomca-Eclipse

打开Eclipse,配置Tomcat插件,如下图所示:

新建一个Java Project项目

​ 命名为WB8,然后在项目的右键菜单里,添加Groovy支持!如下图所示:

打开项目属性配置窗口

​ 配置好Tomcat,如下图所示:

Extra information里输入JNDI数据源,例如:

<Resource
        name="jdbc/wb_mysql"
        auth="Container" type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        validationQuery="select 1" testWhileIdle="true" testOnBorrow="false"
        url="jdbc:mysql://127.0.0.1:3306/wb?autoReconnect=true&amp;allowMultiQueries=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8"
        username="root" password="XXXXXX"
        maxActive="20" maxIdle="10" maxWait="-1" />

复制WebBuilder应用目录

​ 在项目的根目录下新建一个web目录,把压缩文件webbuilder.zip里的/wb目录下的所有东西复制到新建的web下,最后的目录结构如下图所示:

更新项目的Context

​ 把WB8项目的context信息更新到Tomcat的tomcat8/conf/Catalina/localhost目录下,如下图所示:

文件wb.xml内容如:

<Context path="/wb" reloadable="true" docBase="C:\WJW_E\WJW_DATA\OpenSource\WebBuilder\eclipse_workspace\WB8\web" workDir="C:\WJW_E\WJW_DATA\OpenSource\WebBuilder\eclipse_workspace\WB8\work" >
<!-- Extra info begin -->
<Resource
        name="jdbc/wb_mysql"
        auth="Container" type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        validationQuery="select 1" testWhileIdle="true" testOnBorrow="false"
        url="jdbc:mysql://127.0.0.1:3306/wb?autoReconnect=true&amp;allowMultiQueries=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8"
        username="root" password="XXXXXX"
        maxActive="20" maxIdle="10" maxWait="-1" />

<!-- Extra info end -->
</Context>

增加Groovy支持

  1. groovy-all-X.X.X.jar复制到WEB-INF/lib/目录下 修改Java Build Path,把WEB-INF/lib目录下的所有jar文件添加到Libraries中!

如下图所示:

  1. 修改文件WEB-INF/web.xml,在</filter-mapping>行下面添加:
  <servlet>
    <servlet-name>GroovyServlet</servlet-name>
    <servlet-class>groovy.servlet.GroovyServlet</servlet-class>
    <init-param>
      <param-name>verbose</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>logGROOVY861</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>resource.name.regex</param-name>
      <param-value>gdo$</param-value>
    </init-param>
    <init-param>
      <param-name>resource.name.replacement</param-name>
      <param-value>groovy</param-value>
    </init-param>
         
    <load-on-startup>2</load-on-startup>
  </servlet>
	
  <servlet-mapping>
   <servlet-name>GroovyServlet</servlet-name>
   <url-pattern>*.gdo</url-pattern>
  </servlet-mapping>
  1. 编写测试文件WEB-INF/groovy/test.groovy,(按照约定,WEB-INF/groovy是groovy文件的根目录!)
def builder = new groovy.json.JsonBuilder()
builder.people {
	person {
		firstName 'Guillame'
		lastName 'Laforge'
		// Named arguments are valid values for objects too
		address(
		city: 'Paris',
		country: 'France',
		zip: 12345,
		)
		married true
		// a list of values
		conferences 'JavaOne', '你好'
	}
}

out <<  "一般输出:"+builder.toString()
out <<  "<br>\r\n格式化输出:"
out <<  builder.toPrettyString()
  1. 加上权限判断 用Wb.request方法或者url直接引用,然后在groovy里定义能访问的角色,以此来判断是否有执行权限!例如:
//xwl文件里
Wb.request({
  url: 'test.gdo',
  params: {
    foo: 'abc',
    bar: 123
  },
  success: function(response) {
    app.textarea1.setValue(response.responseText);
    Wb.info(response.responseText);
  }
});

//groovy文件里
def needRoles=['default','admin']*.toUpperCase()
def currentRoles = com.wb.common.Session.getRoles(request).toList()*.toUpperCase()

//判断角色  
//任一角色
if(!currentRoles.any { needRoles.contains(it) }) {
  com.wb.util.SysUtil.accessDenied(request);
}

//或者 全部角色 
if(!currentRoles.containsAll(needRoles)) {
  com.wb.util.SysUtil.accessDenied(request);
}
  1. 修改Java Build Path,把groovy文件的根目录WEB-INF/groovy添加到Source中,这样就可以进行断点调试了!

如下图所示:

启动WebBuilder项目

如下图所示:

最后,打开浏览器

输入http://localhost:8080/wb/,进行开发,调试!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Groovy 简单的`@ToString`注解

    从Groovy 1.8开始,我们可以使用@ToString注释来轻松创建toString()方法。 我们只需要在类定义中添加注释,我们就可以获得类的属性的格式良...

    白石
  • 如何在同一台机器上安装多个版本的Java 顶

    不久前,我写了一篇文章,Java Lambda表达式说明。对于我来说,使用Java 8探索这个概念很容易,因为它已经安装在我的项目中。但是在我目前的项目中,我们...

    白石
  • CentOS下安装生产环境可用的Memcached

    查找:memcached.c文件,把 } else if (ntokens >= 2 && ntokens <= 4 && (strcmp(tokens[CO...

    白石
  • [开发技巧]·keras如何冻结网络层

    在keras中除了从model.layers取得layer,我们还可以通过model.get_layer(layer_name)获取。

    小宋是呢
  • Openlayers3中统计图的实现

    在前文中讲到了在Arcgis for js中统计图的实现,在本文,讲述在Openlayers3中结合highcharts实现统计图。

    lzugis
  • 腾讯&春秋 “Next One 计划”迎来首批2000名学员,持续支持大学生培养事业

    腾讯安全平台部期望能够给更多有志于安全行业的大学生们,提供一个实战的平台,将8亿用户遇到的安全问题作为最真实的对抗反馈,帮助学生们将知识更好地转化为技能,更快成...

    腾讯高校合作
  • 简易项目搭建(用于一般杂七杂八的小功能点)

    在工作过程中,我们总会碰到很多小型的功能点需要完成,以LZ自己的工作情况来举例,其中最频繁的是俩点 1、控制台项目 2、web界面(纯前台)

    小狐狸
  • 使用localStorage必须了解的点

    本地存储(localStorage)已经不是新鲜的概念,本文并不是本地存储的概念及 API 介绍,而是对本地存储在实际业务场景中的一些问题做些探讨,从而形成一套...

    IMWeb前端团队
  • 使用localStorage必须了解的点

    本地存储(localStorage)已经不是新鲜的概念,本文并不是本地存储的概念及 API 介绍,而是对本地存储在实际业务场景中的一些问题做些探讨,从而形成一套...

    IMWeb前端团队
  • 网易一面面经

    自我介绍 TCP三次握手和四次挥手的过程 为什么是三次握手 JDK动态代理 如果没有实现接口使用什么?(CGLIB) NIO和BIO区别 HashMap Con...

    牛客网

扫码关注云+社区

领取腾讯云代金券