- Flink中的SQL Client和SQL Gateway
BigDataMLApplication
flinkflinksqlgateway
Flink中的SQLClient和SQLGateway对比目录定义基本原理适用场景主要区别常用运维命令示例官方链接正文1.定义SQLClient:FlinkSQLClient是一种用于提交和执行FlinkSQL语句的命令行界面或图形界面工具。SQLGateway:FlinkSQLGateway是一个独立的服务,它允许客户端通过RESTfulAPI将SQL查询提交到Flink集群。2.基本原理SQL
- 枚举使用笔记
万变不离其宗_8
项目笔记笔记
1.java枚举怎么放在方法上面的注释里面/***保存*@paramuserId用户id*@paramtype见枚举{@linkcom.common.enums.TypeEnum}*@return*/voidsave(LonguserId,Stringtype);
- 检测usb口HotPlug-netlink
cany1000
linux
为了完成内核空间与用户空间通信,Linux提供了基于Socket的NetLink通信机制。SELinux,Linux系统的防火墙分为内核态的netfilter和用户态的iptables,netfilter与iptables的数据交换就是通过Netlink机制完成。下面看一个检测usb口的例子:s32InitUsbHotPlug(void){s32nSockFd=0;//套接字地址structsoc
- react native 总结
一切顺势而行
reactnativereact.jsjavascript
reactapp.js相当与vueapp.vueimportReactfrom'react';import'./App.css';importReactRoutefrom'./router'import{HashRouterasRouter,Link}from'react-router-dom'classAppextendsReact.Component{constructor(props){su
- Flink算子通用状态应用测试样例
公子乂
flinkjavaservlet
Flink算子通用状态应用测试样例1.获取Flink执行环境finalStreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism(1);2.创建数据源,生成随机数据DataStream>source=env.addSource(newSourceFunct
- 使用POI以OLE对象的形式向excel中插入附件(pdf为例)
庄周的大鱼
excelpoiEasyExcel经验分享填充附件OLE
前言:最近在使用easyExcel操作excel文件时,一直想找到一个方法可以往excel中填充附件,但是目前只发现POI可以插入附件,于是将方法记录如下:实现:这个方法主要是使用ApachePOI的HSSFWorkbook类来创建一个Excel文件,并在其中插入了一个作为OLE(ObjectLinkingandEmbedding)对象的PDF文件。同时,它还关联了一个图片,作为该PDF文件的预览
- html版本号 webpack_html-webpack-plugin详解
weixin_39994949
html版本号webpack
引言最近在react项目中初次用到了html-webapck-plugin插件,用到该插件的两个主要作用:为html文件中引入的外部资源如script、link动态添加每次compile后的hash,防止引用缓存的外部文件问题可以生成创建html入口文件,比如单页面可以生成一个html文件入口,配置N个html-webpack-plugin可以生成N个页面入口有了这种插件,那么在项目中遇到类似上面
- 关于HDP的20道高级运维面试题
编织幻境的妖
运维
1.描述HDP的主要组件及其作用。HDP(HortonworksDataPlatform)的主要组件包括Hadoop框架、HDFS、MapReduce、YARN以及Hadoop生态系统中的其他关键工具,如Spark、Flink、Hive、HBase等。以下是对这些组件及其作用的具体描述:Hadoop框架:Hadoop是一个开源的分布式计算框架,用Java语言编写,用于存储和处理大规模数据集。它广义
- 华为设备vlan配置命令
Tony_long7483
网络设计与配置华为网络
[Huawei]vlan10//创建VLAN并进入VLAN视图[Huawei]vlanbatch11to20//批量创建VLAN[Huawei-GigabitEthernet0/0/1]portlink-typeaccess[Huawei-GigabitEthernet0/0/1]portdefaultvlan10//配置接口的缺省VLAN并将接口加入到指定VLAN[Huawei-GigabitE
- MATLAB/Simulink 基础入门讲解(一)
紗梨酱
小萌新初学simulinkmatlabsimulink
MATLAB/Simulink基础总结相信很多朋友总是遇到这种情况,学过的知识总是忘记,尤其是针对课外知识较多的专业技巧课程,老师或者是师兄师姐只是带你入门,然后讲几个例子,你认真地听,最开始觉得也就是如此简单的一个东西罢了,轮到实际操作时,又开始梦游,学过但又没完全学过,每次总是重复在第一个学过的技巧点上。本次就全面的总结一个基础视频,把MATLAB/Simulink中需要使用到的基础知识都化成
- 复习笔记 队列
李不存
笔记
约瑟夫问题:约瑟夫问题:有N个人围成一圈,每个人都有一个编号,编号由入圈的顺序决定,第一个入圈的人编号为1,最后一个为N,从第k(1queue=newLinkedList<>();Scannersc=newScanner(System.in);intn=sc.nextInt();intm=sc.nextInt();for(inti=1;i<=n;i++){queue.add(i);}intcoun
- Flink 面试题总结及答案
wending-Y
Flink入门到实践flink大数据
基础state的分类keystate和operatestatestate的重分布Flink状态管理详解:KeyedState和OperatorListState深度解析-掘金checkpoint和savepointhttps://zhuanlan.zhihu.com/p/79526638flinkjob的容错策略如果在没有持续消息输出的情况下,如何定时输出主要是现实有可能不会一直有消息输入,但是要
- Flink 批作业 消费kafka
wending-Y
Flink入门到实践flinkkafka大数据
文章目录示例代码原理总是kafka数据源可以是有界数据源,也可以是无界数据源示例代码publicstaticvoidmain(String[]args){StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();env.setParallelism
- Flink源码-6-JobMaster 启动任务
wending-Y
Flink入门到实践flink
JobMasterjobmaster负责执行整个任务入口类org.apache.flink.runtime.jobmaster.JobMasterpublicCompletableFuturestart(finalJobMasterIdnewJobMasterId)throwsException{//makesurewereceiveRPCandasynccallsstart();returnca
- JAVA线程究竟有几种状态?
KK_crazy
java线程状态数据库面试javatomcat开发语言
线程状态全套面试题已打包2024最全大厂面试题无需C币点我下载或者在网页打开线程的状态,在你*度的过程中,你会发现,答案有5种,6种,甚至还有7种的,那么究竟有几种状态?准确答案就是6种在编译器JDK1.5以后的环境下,打开Thread进入源码看看:*Athreadstate.Athreadcanbeinoneofthefollowingstates:*一个线程,有以下几种状态**{@link#N
- 【大数据面试题】014 Flink CDC 用过吗,请简要描述
Jiweilai1
一天一道面试题flink大数据面试flinkcdc
一步一个脚印,一天一道面试题。FlinkCDC的诞生背景FlinkCDC的全称是ChangeDataCapture(变更数据捕获)每一项技术的诞生都是为了解决某个问题,某个痛点。而FlinkCDC的诞生就是为了解决在读取,监控MySQL这样的数据库时,不会因为读取数据库,对数据库本身造成压力,影响性能。同时,保证了数据源的准确,正确。FlinkCDC原理方式一:通过查询来获取更新的数据。如查询数据
- TestLink管理测试
robot_test_boy
测试是一个过程。从测试计划开始,然后进行测试用例的设计、测试执行直至测试结果分析和报告,贯穿软件开发生命周期。对于上规模的软件团队,同时会有多个项目在运行,而且其中一些是大项目,可能要设计几千个、甚至几万个测试用例。如果通过手工方式进行文档管理,那么工作量很大,效率低。我们必须借助基于数据库、XML等技术的测试管理系统,实现测试管理的自动化。软件测试管理工具能管理整个测试过程,可以提高测试用例的复
- android pdf框架-8,图片缓存
archko
pdfpdfandroid
解码会产生很多图片,滑过后不要显示,如果直接回收,会浪费不少资源.在没有缓存的情况下,会看到gc还是比较频繁的.有了缓存后,明显gc少了.目录常用的缓存自定义缓存显示相关的内存缓存解码缓存池内存缓存实现:解码缓存池实现:常用的缓存lrucache,这是最常用的,也是androidsdk里面有的.就是按访问时间顺序,内部使用linkedhashmap,会记录访问时间.androidx.core.ut
- pyflink1.18.0 报错 TypeError: cannot pickle ‘_thread.lock‘ object
Thomas2143
总结pyflink
完整报错Traceback(mostrecentcalllast):File"/Users//1.py",line851,inds1=my_datastream.key_by(lambdax:x[0]).process(MyProcessFunction())#返回元组即:f0f1f2三列File"/Users/thomas990p/bigdataSoft/minicondaarm/minicon
- 代码随想录算法训练营第三天 | 203.移除链表元素,707.设计链表 206.反转链表
B七.七.七J
算法链表数据结构
203.移除链表元素https://leetcode.cn/problems/remove-linked-list-elements/description/1.不带表头法因为是不带表头的,所以要区分两种情况,第一种是要删除的链表元素就是表头的元素,这里假设有多个要删除的元素,所以应该是while(head!=NULL&&head->val==val)用的是while循环的方式,而不是If的形式,
- 【Flink SQL】Flink SQL 基础概念(五):SQL 时区问题
G皮T
#FlinkSQLflinksql大数据时区TIMESTAMP_LTZTIMESTAMP
《FlinkSQL基础概念》系列,共包含以下5篇文章:FlinkSQL基础概念(一):SQL&Table运行环境、基本概念及常用APIFlinkSQL基础概念(二):数据类型FlinkSQL基础概念(三):SQL动态表&连续查询FlinkSQL基础概念(四):SQL的时间属性FlinkSQL基础概念(五):SQL时区问题如果您觉得这篇文章有用✔️的话,请给博主一个一键三连吧(点赞、关注、收藏)!!
- 【大数据】Flink SQL 语法篇(五):Regular Join、Interval Join
G皮T
#FlinkSQL大数据flinksqlRegularJoinIntervalJoin双流Join
《FlinkSQL语法篇》系列,共包含以下10篇文章:FlinkSQL语法篇(一):CREATEFlinkSQL语法篇(二):WITH、SELECT&WHERE、SELECTDISTINCTFlinkSQL语法篇(三):窗口聚合(TUMBLE、HOP、SESSION、CUMULATE)FlinkSQL语法篇(四):Group聚合、Over聚合FlinkSQL语法篇(五):RegularJoin、I
- 链表的删除结点(各种方法)
LightningJie
c++链表数据结构c语言
先建立链表(代码在最后)一、链表中删除第i个结点intmain(){inti;Node*p,*head,*k;head=setlink();scanf("%d",&i);intv=1;for(p=head->next;p!=NULL;k=p,p=p->next){if(v==i)break;else{v++;}}k->next=p->next;delete(p);for(p=head->next;
- 大数据开发(Kafka面试真题-卷一)
Key-Key
大数据kafka面试
大数据开发(Kafka面试真题)1、请解释以下ApacheKafka是什么?它在大数据系统中的角色是什么?2、请解释以下Kafka的工作原理和它与传统消息队列服务的不同之处?3、解释以下ApacheKafka的作用以及它与常见消息队列系统(如RabbitMQ)之间的区别?4、如何使用ApacheKafka来实现实时数据流处理?5、Flinkcheckpoint和Kafkaoffset的关联是什么?
- T2080 linux内核移植,T1042/T2080 U-BOOT 移植阶段(四)调试网口问题不通解决
weixin_39575758
T2080linux内核移植
本次设计中,我们采用MEMAC4(RGMII)接口作为调试接口,但是发现网口并不通1.首先排查PHY的问题,phy有没有解复位结果:CPLD已经对PHY解复位,且插上网线后,phy'灯link亮,说明phy确实已经解复位2.使用mii命令,读取phy寄存器,插拔网线后观察寄存器的变化,是否正常反应出phy的down和up拔掉网线时phy的状态=>miidump111.(7969)--PHYstat
- 凌鲨微应用API大全
凌鲨
前端
@linksaas-minapp/api获取微应用信息exportinterfaceMinAppInfo{userId:string;//用户ID(未登录为空字符串)userDisplayName:string;crossHttp:boolean;//打开redis代理时会设置redisProxyToken?:string;redisProxyAddr?:string;//打开mongo代理时会设
- JavaGuide知识点整理——集合使用注意事项总结
唯有努力不欺人丶
这篇文章是根据阿里巴巴java开发手册总结了关于集合使用常见的逐一实现以及原理。集合判空判断所有集合内部的元素是否为空使用isEmpty()方法,而不是size()==0的方式。这是因为isEmpty()方法的可读性更好,并且时间复杂度为O(1).不过也有很多复杂度不是O(1)的,比如JUC包下的某些集合ConcurrentLinkedQueue、ConcurrentHashMap...下面是Co
- android 简单快速 实现滚轮控件WheelView(类似DatePicker/TimePicker)
42nf
androidWheelView时间选择器
github地址:GitHub-Bigkoo/Android-PickerView:Thisisapickerviewforandroid,supportlinkageeffect,timepickerandoptionspicker.(时间选择器、省市区三级联动)https://github.com/Bigkoo/Android-PickerView1.引用库implementation'com
- flink: 自定义表函数的用法
amadeus_liu2
flinkflinkpython大数据
packagecn.edu.tju.demo3;importorg.apache.flink.api.common.functions.MapFunction;importorg.apache.flink.api.java.tuple.Tuple2;importorg.apache.flink.streaming.api.datastream.DataStream;importorg.apache
- flink:自定义函数的简单用法
amadeus_liu2
flinkflink大数据
packagecn.edu.tju.demo3;importorg.apache.flink.api.common.functions.MapFunction;importorg.apache.flink.streaming.api.datastream.DataStream;importorg.apache.flink.streaming.api.datastream.SingleOutputS
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache