Coder Social home page Coder Social logo

webx / citrus Goto Github PK

View Code? Open in Web Editor NEW
762.0 135.0 362.0 7.34 MB

Java-based Web Framework for Alibaba Group

Home Page: http://www.openwebx.org/

Java 98.83% JavaScript 0.59% CSS 0.12% Groovy 0.16% XSLT 0.01% HTML 0.29% Smarty 0.01% FreeMarker 0.01%

citrus's People

Contributors

cqsuper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

citrus's Issues

对于用户在pipelineException中处理的异常,框架能不能不强制的打出一堆异常信息

对于用户自己处理pipelineExcpetion中处理的异常,由用户来控制,而不是框架统一来强制的打出日志,比如多的外地爬虫来爬系统的页面,导致很多找不到模板文件的异常出现在日志中,而用户可能只想记录一下那个模板找不到,不想打出一堆异常信息,或者框架能不能提供一个开关来关闭这个日志的开关,能让用在pipelineException处理的时候来设置是否打出异常

文档9.3.1.2表述有误

文档中的9.3.1.2章节(pdf的Page 151),例9.5下的描述
“定义velocity宏:仅当field验证通过时(即$group.field.valid=true),_显示错误信
息。
对于空白表单和通过验证的字段而言,$group.field.valid为true。”
应该改为
“定义velocity宏:仅当field验证通过时(即$group.field.valid=true),
_显示错误信
息。
对于空白表单和通过验证的字段而言,$group.field.valid为true。”

webx中form表单的验证取值问题

如果一个form表单中既有需要进行验证的属性,又包含不需要验证的属性,该表单里的所有属性都必须要在对应的form.xml文件中配置么?如果不想配置不要验证的属性,有什么好的解决办法么?

No log system exists

maven 3.1.1
webx-all-in-one 3.0.6

slf4j的冲突?

换成maven 3.0.5就OK了


Execution default of goal com.alibaba.citrus.tool:maven-autoconfig-plugin:1.0.10:autoconfig failed: No log system exists -> [Help 1]

ajax 提交form 无法验证表单

$.post(
            "$testModule.setTarget('test_form/edit_form.do')",
            $('#editForm').serialize(),
            function(data,status){
                 alert(status);
            }
    );

这样提交表单不进行验证?

webx pipeline 命名空间网址不可用

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:services="http://www.alibaba.com/schema/services"
    xmlns:pl-conditions="http://www.alibaba.com/schema/services/pipeline/conditions"
    xmlns:pl-valves="http://www.alibaba.com/schema/services/pipeline/valves"
    xsi:schemaLocation="
                 http://www.alibaba.com/schema/services http://localhost:8080/schema/services.xsd
                 http://www.alibaba.com/schema/services/pipeline/conditions http://localhost:8080/schema/services-pipeline-conditions.xsd
                 http://www.alibaba.com/schema/services/pipeline/valves http://localhost:8080/schema/services-pipeline-valves.xsd
                 http://www.springframework.org/schema/beans http://localhost:8080/schema/www.springframework.org/schema/beans/spring-beans-3.2.xsd
             ">

里面的 http://www.alibaba.com/schema/services/pipeline/conditions 以及 http://www.alibaba.com/schema/services/pipeline/valves 都访问不了,导致编辑的时候无法进行 scheme 提示

ww20150511114904

另外,我用的是 IDEA+maven plugin

bug report - webx3 在构造rundata parameters的时候 如果发现是文件上传就会忽略 请求url上的参数

---ParameterParserImpl 98 行开始

if (requestContext.isAutoUpload() && upload != null) {
// 如果是multipart/*请求,则调用upload service来解析。
isMultipart = upload.isMultipartContent(wrappedRequest);

        if (isMultipart) {
            try {
                parseUpload();
            } catch (UploadSizeLimitExceededException e) {
                add(ParserRequestContext.UPLOAD_FAILED, Boolean.TRUE);
                add(ParserRequestContext.UPLOAD_SIZE_LIMIT_EXCEEDED, Boolean.TRUE);
                log.warn("File upload exceeds the size limit", e);
            } catch (UploadException e) {
                add(ParserRequestContext.UPLOAD_FAILED, Boolean.TRUE);
                log.warn("Upload failed", e);
            }
        }
    }

    // 从request中取参数
    if (!isMultipart) {
        String method = wrappedRequest.getMethod();

如何在程序中对cookie进行设置maxAge?

在webx.xml中配置了cookie-store

            <id>
                <cookie path="/" maxAge="0" httpOnly="true" />
            </id>
            <stores>
                <session-stores:cookie-store id="temporaryCookie">
                    <cookie name="tmp" />
                </session-stores:cookie-store>
            </stores>
            <store-mappings>
                <match name="*" store="temporaryCookie" />
            </store-mappings>

如何在程序中对maxAge进行更改,使不同的用户maxAge不同
我尝试用cookie修改

for(Cookie cookie : request.getCookies()){
            cookie.setMaxAge(60*60*24*7);
            response.addCookie(cookie);
        }

但是这样csrftoken貌似也被cookie了? 导致重新打开浏览器时csrftoken验证不通过,还有如何理解

webx主张把一切对cookie的读写,都转换成对session的读写

是说将cookie读写都通过session来读写,还是说将cookie都放入session中?
感谢各位不吝赐教!!

webx应用petstore启动报错

使用最新代码在本地进行编译运行过程中报错。

1、环境
本地环境:OS X 10.10.4 (14E46)
Java :java version “1.7.0_80" Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
Maven: Apache Maven 3.3.9

2、操作
按照http://openwebx.org/ 首页教程:

git clone https://github.com/webx/citrus-sample.git
cd citrus-sample/petstore
mvn clean install
cd web
mvn jetty:run-war

进行操作之后,报下面错误,但是可以启动:

Caused by: com.alibaba.sample.petstore.biz.StoreManagerException: Could not get upload directory from ResourceLoader: /petstore/upload
    at com.alibaba.sample.petstore.biz.impl.StoreManagerImpl.afterPropertiesSet(StoreManagerImpl.java:77)

然后访问 http://127.0.0.1:8081,页面报错,HTTP报文头:

Request URL:http://127.0.0.1:8081/
Request Method:GET
Status Code:503 Service Unavailable
Remote Address:127.0.0.1:8081

实际上,应该将教程中的
mvn jetty:run-war
修改成:
mvn jetty:run

这样的话,应用正常启动,访问http://127.0.0.1:8081 成功。

webx 处理json请求的循环引用问题

com.alibaba.citrus.turbine.pipeline.valve.RenderResultAsJsonValve中
PrintWriter out = response.getWriter(); String jsonResult = JSON.toJSONString(resultObject); if (outputAsJson) { out.print(jsonResult); } else { out.print("var "); out.print(javascriptVariable); out.print(" = "); out.print(jsonResult); out.print(";"); }
什么时候帮忙解决 @wenshao @superbaobao @cqsuper

批量表单生成后支持动态增加

现在表单支持批量提交,是在页面初始化后,都已经定下来了,有多少个批量提交就多少个批量提交。
现在有需求,希望能动态增加表单,最后批量提交。

解决在IDEA里,autoconfig在跑JUnit测试时,不能输入的问题

IDEA 官方的issue:

官方的解法是给IDEA配置启动参数 editable.java.test.console=true

实测在mac下面,要修改 /Applications/IntelliJ IDEA CE.app/Contents/bin/idea.properties ,增加

editable.java.test.console=true

image

理论上,修改 /Applications/IntelliJ IDEA CE.app/Contents/bin/idea.vmoptions,加上下面的配置也应该生效。但实际上并不起作用,原因不明。

-Deditable.java.test.console=true
  • 测试版本是 IntelliJ IDEA CE 2019.2

参数注解在使用cglib的时候有bug?

如果中间又有一个空类,就会无法读取参数注解。

public Parent{
 public void execute(Context context, @Param("id") String id) {

  }
 }

//aop增强
public Child extends Parent{

}

分析原因是com.alibaba.citrus.service.dataresolver.impl.DataResolverServiceImpl.getAnnotatedMethod(Method)中有bug,

private Method getAnnotatedMethod(Method method) {
Method annotatedMethod = method;
//这里的判断annotatedMethod 可以为空,因为它的父类可以不回空,例如Child 
    while (annotatedMethod != null && !hasAnnotations(annotatedMethod.getParameterAnnotations())) {
        annotatedMethod = getOverridenMethod(annotatedMethod);
    }
 return annotatedMethod == null ? method : annotatedMethod;
} 

webx3中如何添加自定义velocity块指令?

我添加了

<beans:bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
        <!--<beans:property name="resourceLoaderPath" value="/velocity 模板目录/"/>-->
        <beans:property name= "velocityProperties">
            <beans:props>
                <beans:prop key="input.encoding">utf-8</beans:prop>
                <beans:prop key="output.encoding">utf-8</beans:prop>
                <beans:prop key="userdirective">com.my.directive.Script</beans:prop>
            </beans:props>
        </beans:property>
    </beans:bean>

但是vm依然解析不了#script()
webx3中该如何添加自定义的velocity块指令呢?

已经用了maven 为啥还是需要antx ?

╭───────────────────────┈┈┈┈

│ 您的配置文件需要被更新:

│ file:/Users/xxx/antx.properties

│ 这个文件包括了您个人的特殊设置,
│ 包括服务器端口、您的邮件地址等内容。

└───────┈┈┈┈┈┈┈┈┈┈┈

如果不更新此文件,可能会导致配置文件的内容不完整。

Failed to execute goal com.alibaba.citrus.tool:autoconfig-maven-plugin:1.2:autoconfig (default) on project petstore-web: Autoconfig failed: 因为配置文件“file:/Users/xxx/antx.properties”未准备好,所以无法继续下去!

以上是master mvn install ERROR log info ....

支持servlet3.1么

我看编译的时候是用的是servlet2.5

我这里想用`AsyncContext`。

开发模式开启之后, url错误

com.alibaba.citrus.webx.support.AbstractWebxRootController 中 public RequestHandlerContext getRequestHandlerContext(HttpServletRequest request, HttpServletResponse response)

String baseURL = getBaseURL(request);
String path = getResourcePath(request).replace(' ', '+'); // 将空白换成+,因为internalHandlers的key不会包含空白。
String internalBaseURL = baseURL + internalPathPrefix;
未考虑到端口问题

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.