小编And*_*ios的帖子

response.flushBuffer()不起作用

我正在尝试实现一个用于流式传输大型对象的servlet:

    oracle.sql.BLOB blob = rs.getBLOB('obj');
    InputStream in = blob.getBinaryStream();

    int bufferSize = 1024;
    byte[] buffer = new byte[bufferSize];

    ServletOutputStream out = response.getOutputStream();

    int counter=0
    while((length=in.read(buffer)) != -1){
        out.write(buffer,0,length);
        counter++;
        if(counter % 10 == 0){
        counter=0;
        response.flushBuffer();
    }
Run Code Online (Sandbox Code Playgroud)

此代码假设通过chunck将数据发送到客户端块.现在发生的事情是,当我传输大对象(100 MB)时,内存会上升,如果有多个并行下载/流,服务器有时会死掉.

为什么这flushBuffer()不是向客户端发送数据?只有在响应关闭后,客户端才会弹出打开/保存文件.

java streaming servlets blob oracle11g

6
推荐指数
1
解决办法
4836
查看次数

Struts2:<s:submit>按钮中的方法属性不起作用

我在jsp中有一个表单.有两个提交按钮:"搜索"和"添加新"按钮.我已经为每个按钮设置了自己的方法属性.

<s:form name="searchForm" action="employeeAction" method="post">
    <s:textfield name="id" label="Employee ID"/>
    <s:textfield name="name" label="Employee Name"/>

    <s:submit value="Search" method="doSearch"/>
    <s:submit value="Add New" method="doAddNew"/>
</s:form>
Run Code Online (Sandbox Code Playgroud)

在struts.xml中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

    </package>

    <package name="example" namespace="/example" extends="default">

        <action name="employeeAction" class="example.EmployeeAction">
           <result name="search">/example/search.jsp</result>
           <result name="add">/example/add.jsp</result>
        </action>

    </package>
</struts>
Run Code Online (Sandbox Code Playgroud)

在EmployeeAction类中

public class EmployeeAction …
Run Code Online (Sandbox Code Playgroud)

java jsp struts2 submit-button struts-action

6
推荐指数
1
解决办法
3万
查看次数

document.querySelector.bind(document)是什么意思;

我正在检查来自html5rocks的代码:http://www.html5rocks.com/static/demos/parallax/demo-1a/scripts/parallax.js

并注意他们使用

(function(win, d) {

  var $ = d.querySelector.bind(d);

  ....

  var mainBG = $('section#content');

  ....

})(window, document);
Run Code Online (Sandbox Code Playgroud)

为什么他们将文档绑定到querySelector.是不是它已经作为文件的范围?

javascript document bind parallax.js

6
推荐指数
1
解决办法
2534
查看次数

Struts 2:使用资源包中的值进行选择

我们使用它s:select来显示资源包中的字符串列表.

在行动中:

//bank codes will be something [12,13,14]
List<String> bankCodesList; //with setter and getter
String selectedBankCode;
Run Code Online (Sandbox Code Playgroud)

在消息资源中,每个银行都有一个名称:

bank.code.12= ALFM Bank
bank.code.13= RIHN Bank

....
Run Code Online (Sandbox Code Playgroud)

在JSP中:

   <s:select name = "selectedBankCode" 
             list = "bankCodesList"         
          listKey = "toString()" 
        listValue = "%{getText('bank.code.' + toString())}" />
Run Code Online (Sandbox Code Playgroud)

银行列表是List<String>我们用来toString()获取密钥并用于toString()从资源包中获取价值的.

我除了发现s:select有一个status属性相同,s:iterator但我找不到任何!

所以你认为还有更好的方法吗?!

jsp struts2 ognl struts-tags

6
推荐指数
1
解决办法
1517
查看次数

为什么@Singleton超过生产者中的@ApplicationScoped?

LoggerProducer.java是一个类,用于生成要在CDI bean中注入的Logger:

@Inject 
Logger LOG;
Run Code Online (Sandbox Code Playgroud)

完整代码:

import javax.ejb.Singleton;

/**
 * @author rveldpau
 */
@Singleton
public class LoggerProducer {

    private Map<String, Logger> loggers = new HashMap<>();

    @Produces
    public Logger getProducer(InjectionPoint ip) {
        String key = getKeyFromIp(ip);
        if (!loggers.containsKey(key)) {
            loggers.put(key, Logger.getLogger(key));
        }
        return loggers.get(key);
    }

    private String getKeyFromIp(InjectionPoint ip) {
        return ip.getMember().getDeclaringClass().getCanonicalName();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:可以@Singleton安全地变成@ApplicationScoped

我的意思是,为什么有人想在这里使用EJB?是否存在技术原因,因为不涉及任何交易,而且(AFAIK)无论如何都是线程安全的?

我显然是指javax.enterprise.context.ApplicationScoped,而不是javax.faces.bean.ApplicationScoped.

java thread-safety java-ee cdi ejb-3.1

6
推荐指数
1
解决办法
6664
查看次数

从线程创建其他线程的最有效方法是什么?

从线程创建其他线程的最有效方法是什么?

上下文

我正在重新设计一个更高效的应用程序.最大的改进之一是运行并发操作; 但我不熟悉并发编程.我希望改进的方案如下:

我们有多个市场可以从中导入订单,然后上传到我们的ERP系统.每个市场都有多种记录类型可供导入.目前,这MP->RT->RT->RT->RTMP调用marketplace()的位置一样,并且添加了后续的recordtypes(RT).

我想要实现的是如下流程:

MP 
  |-> RT
  |-> RT
  |-> RT
  |-> RT
MP
  |-> RT
  |-> RT
  ...
Run Code Online (Sandbox Code Playgroud)

调用多个市场的地方,然后同时添加多个记录类型.

我目前正在使用一个executor service控制MP任务,但我想知道处理RT任务的最佳方法.

java concurrency multithreading thread-safety executorservice

5
推荐指数
1
解决办法
198
查看次数

Bootstrap单选按钮:无线电圆圈移除

我想在我的网站上使用Bootstrap.我有单选按钮,我试图使用bootstrap中的"按钮".

<td style="margin-bottom:0px; padding-bottom: 0px;font-size=12px;vertical-align:bottom;">
    <div class="btn-group" data-toggle="buttons" id="topButtonDiv" >
        <button type="button" class="btn btn-primary">Home
        <input type="radio" id="radio1" ></button>
        <button type="button" class="btn btn-primary">Home1
        <input type="radio" id="radio2" > </button>
        <button type="button" class="btn btn-primary">Home2
        <input  type="radio" id="radio7"> </button>                
     </div>
</td>
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,我仍然看到单选按钮中的圆圈,在Bootstrap示例中,我看到没有这样的圆圈存在.

http://getbootstrap.com/javascript/#buttons-usage

你能让我知道我在这里缺少什么吗?

html twitter-bootstrap

5
推荐指数
2
解决办法
1万
查看次数

意外异常在'类xxx上设置了'xxx':错误设置表达式'xxx',其值为['x',]

我将一些参数传递给ModelDriven<Transporter>通过查询字符串实现的动作类.

<s:form namespace="/admin_side" action="Test" id="dataForm" name="dataForm">
    <s:url id="editURL" action="EditTest" escapeAmp="false">
        <s:param name="transporterId" value="1"/>
        <s:param name="transporterName" value="'DHL'"/>
    </s:url>
    <s:a href="%{editURL}">Click</s:a>
</s:form>
Run Code Online (Sandbox Code Playgroud)

动作类如下.

@Namespace("/admin_side")
@ResultPath("/WEB-INF/content")
@ParentPackage(value = "struts-default")
public final class TestAction extends ActionSupport 
                           implements Serializable, Preparable, ModelDriven<Transporter>
{
    private static final long serialVersionUID = 1L;
    private Transporter transporter = new Transporter();

    @Action(value = "Test",
    results = {
        @Result(name = ActionSupport.SUCCESS, location = "Test.jsp"),
        @Result(name = ActionSupport.INPUT, location = "Test.jsp")},
    interceptorRefs = {
        @InterceptorRef(value = "paramsPrepareParamsStack", 
                 params = {"params.acceptParamNames", "transporterId, …
Run Code Online (Sandbox Code Playgroud)

java model-driven struts2 interceptorstack struts2-interceptors

5
推荐指数
1
解决办法
2万
查看次数

JPA - 以编程方式通过序列递增数字字段

我有一个JPA 2 Web应用程序(Struts 2,Hibernate 4仅作为JPA实现).

当前的要求是将(非id)数字顺序字段(仅对某些行填充)添加到现有实体.根据特定条件插入新行时,我需要将新字段设置为its highest value + 1NULL.

例如:

ID     NEW_FIELD     DESCRIPTION
--------------------------------
1          1           bla bla
2                      bla bla       <--- unmatched: not needed here
3                      bla bla       <--- unmatched: not needed here
4          2           bla bla
5          3           bla bla
6          4           bla bla
7                      bla bla       <--- unmatched: not needed here
8          5           bla bla
9                      bla bla       <--- unmatched: not needed here
10         6           bla bla
Run Code Online (Sandbox Code Playgroud)

在旧的SQL中,它将是这样的:

INSERT INTO myTable ( …
Run Code Online (Sandbox Code Playgroud)

java sql hibernate jpa

5
推荐指数
1
解决办法
3万
查看次数

FreeMarker模板错误!在struts2

我在课堂上使用基于sturts 2的基于注解的验证,同时使动作错误消失,我得到了这个奇怪的“ FreeMarker模板错误!”。这是我的实体类。

@Entity
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long userid;
    private String userPhoneNumber;
    private String userName;
    private String password;
    private String full_name;
    private String useremail;

    @OneToOne
    private userType usertypeid;

    public Long getUserid() {
        return userid;
    }

    public void setUserid(Long userid) {
        this.userid = userid;
    }

    public String getUserPhoneNumber() {
        return userPhoneNumber;
    }

    @RequiredStringValidator(message = "Enter Phone Number",type = ValidatorType.FIELD)
    public void setUserPhoneNumber(String userPhoneNumber) {
        this.userPhoneNumber = …
Run Code Online (Sandbox Code Playgroud)

java jsp freemarker struts2 struts-validation

5
推荐指数
1
解决办法
5591
查看次数