小编Dis*_*tum的帖子

从枚举类型和序数中获取枚举值

public <E extends Enum> E decode(java.lang.reflect.Field field, int ordinal) {
    // TODO
}
Run Code Online (Sandbox Code Playgroud)

假设field.getType().isEnum()true,我将如何生成给定序数的枚举值?

java reflection enums

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

在响应完成之前关闭HttpURLConnection

背景

我正在HttpURLConnection客户端使用在HTTP流(服务器推送)情况下使用响应.虽然服务器可以通过关闭响应来关闭连接,但客户端也需要能够执行此操作.

问题

客户端InputStream在单独的线程中处理,如下所示:

@Override
public void run() {
    try {
        for (int b = in.read(); b >= 0; b = in.read()) {
            char c = (char) b;
            // Do something with the character
            // ...
        }
    }
    catch (IOException e) {
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,当我HttpURLConnection.disconnect()从发起连接的线程调用时(重要的信息是它与处理输入的线程不同),该调用无限期挂起.我甚至把它留在了一夜之间它仍然悬挂着.甚至打电话都Thread.interrupt()没有帮助.

建议?

java httpurlconnection

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

JSF转换器导致验证器被忽略

这是领域:

<h:inputText id="mobilePhoneNo"
             value="#{newPatientBean.phoneNo}"
             required="true"
             requiredMessage="Required"
             validator="#{mobilePhoneNumberValidator}"
             validatorMessage="Not valid (validator)"
             converter="#{mobilePhoneNumberConverter}"
             converterMessage="Not valid (converter)"
             styleClass="newPatientFormField"/>
Run Code Online (Sandbox Code Playgroud)

验证者:

@Named
@ApplicationScoped
public class MobilePhoneNumberValidator implements Validator, Serializable
{
    @Override
    public void validate(FacesContext fc, UIComponent uic, Object o) throws ValidatorException
    {
        // This will appear in the log if/when this method is called.
        System.out.println("mobilePhoneNumberValidator.validate()");

        UIInput in = (UIInput) uic;
        String value = in.getSubmittedValue() != null ? in.getSubmittedValue().toString().replace("-", "").replace(" ", "") : "";

        if (!value.matches("04\\d{8}"))
        {
            throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Please enter a valid mobile …
Run Code Online (Sandbox Code Playgroud)

java jsf-2

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

Windows服务无法写入%LOCALAPPDATA%

我已经构建了一个仅在不作为Windows服务运行时才有效的应用程序.嗯,服务运行,但它没有做它应该做的事情.该服务使用本地服务帐户.所以为了启动调试,我想我会从简单的事情开始:让它在启动时创建一个目录:

Directory.CreateDirectory(
    Environment.SpecialFolder.LocalApplicationData + "\\MyService");
Run Code Online (Sandbox Code Playgroud)

当我启动该服务时,它几乎立即停止,Windows报告了这一事实.当我注释掉上面的语句,重新编译并重新安装时,服务运行没有停止.

显然上面的行引发了某种异常.我无法记录错误,因为我无法写入文件系统.任何想法为什么本地服务无法在自己的%LOCALAPPDATA%中创建目录?

.net c# windows-services

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

JSF 2 ui:repeat:对div中的每n个项进行分组

鉴于我想要在这样的页面上安排的集合:

<!-- Group 0 -->
<div style="float:left;">
    <div><!-- Item 0 --></div>
    <div><!-- Item 1 --></div>

    <!-- ... -->

    <div><! -- Item n - 1 --></div>
</div>
<!-- Group 1 -->
<div style="float:left;">
    <div><!-- Item n     --></div>
    <div><!-- Item n + 1 --></div>

    <!-- ... -->

    <div><! -- Item 2n - 1 --></div>
</div>

<!-- ... -->

<!-- Group g -->
    <div><!-- Item gn     --></div>
    <div><!-- Item gn + 1 --></div>

    <!-- ... -->

    <div><! -- Item (g + 1)n - …
Run Code Online (Sandbox Code Playgroud)

java jsf jsf-2 uirepeat

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

jscodeshift 更改对象文字值

使用jscodeshift,我该如何转换

// Some code ...

const someObj = {
  x: {
    foo: 3
  }
};

// Some more code ...
Run Code Online (Sandbox Code Playgroud)

// Some code ...

const someObj = {
  x: {
    foo: 4,
    bar: '5'
  }
};

// Some more code ...
Run Code Online (Sandbox Code Playgroud)

我努力了

module.exports = function(file, api, options) {
    const j = api.jscodeshift;
    const root = j(file.source);

    return root
        .find(j.Identifier)
        .filter(path => (
            path.node.name === 'someObj'
        ))
        .replaceWith(JSON.stringify({foo: 4, bar: '5'}))
        .toSource();
}
Run Code Online (Sandbox Code Playgroud)

但我最终得到的是

// Some code ...

const …
Run Code Online (Sandbox Code Playgroud)

javascript jscodeshift

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

Java HTTP全双工

我有一个在Jersey上运行的RESTful Web服务(GlassFish 3.1.1).这个有点不寻常 - 它使用HTTP流.客户端和服务器有一个长时间运行的对话,在这些对话中,他们不断发送编码为XML标签的消息.这样做的主要原因是服务器可以推送到客户端.

我有一个使用的测试客户端HttpURLConnection.问题是客户端OutputStream或服务器的InputStream过早关闭.当我尝试从客户端发送一些XML时,我得到一个ProtocolException抛出(读取输入后无法写入输出).

当我使用WizTools RESTClient进行测试时,我可以发布XML请求,但此工具不允许保持连接活动.但至少我知道Web服务至少在这种情况下正在运行.(在流媒体场景中可能还不错;我的猜测HttpURLConnection是让我失望.

有没有办法让HttpURLConnection保持活着并给我实际发送东西的机会OutputStream?而且,最重要的是,有没有办法让它OutputStream在通过InputStream?接收数据后继续写入?

更新:

它看起来像是HttpURLConnection强制执行HTTP的传统用法,即客户端在完全发送请求(并关闭输出流)之前无法处理响应.是否存在允许请求和响应暂时重叠的替代方案?我刚开始看Apache HttpClient,但我还没有找到任何表明它可能的东西,所以我不确定我是否在浪费时间.

java post http jax-rs httpurlconnection

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

JSF h:outputStylesheet转换器 - 动态css?

我刚注意到<h:outputStylesheet/>有一个转换器属性.将虚拟(直通)转换器连接到它后,没有任何反应.仔细观察,尽管点击浏览器刷新按钮,似乎甚至没有调用转换器.

这个属性对任何事都有好处吗?它只是作为各种设计决策的副作用吗?

我问的原因是,用较少或类似的方式执行一些客户端或服务器端的css处理会很好,我认为这个属性可能会有所帮助.

css java jsf-2

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

JSF preRenderView调用次数太多了

我的页面/ bean的preRenderView事件在第一页加载时被触发两次,然后2 + n每次回发被触发,其中n是已经发生的回发数(包括当前的回发数).

在这里阅读了一些其他帖子后,我搬到了<f:event type="preRenderView" listener="myBean.preRenderView"/>外面,<f:metadata/>这减少了preRenderView一个电话的数量.也就是说,在整页加载和1 + n每次回发的时间上调用一次.我甚至试图将<f:event/>标签移到外面<f:view/>,但它没有效果.

我不确定这是否相关:页面使用模板:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:fb="http://www.facebook.com/2008/fbml">
    <f:view contentType="text/html">
        <ui:insert name="metadata"/>
        <h:head>
            <!-- Some stuff here -->
            <ui:insert name="content"/>
            <!-- More stuff here -->
        </h:head>
        <h:body>
        </h:body>
    </f:view>
</html>
Run Code Online (Sandbox Code Playgroud)

以及页面的相关位:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title></title>
    </h:head>
    <h:body>
        <ui:composition template="/WEB-INF/templates/myLayout.xhtml">
            <ui:define name="windowTitle">My Page</ui:define>
            <ui:define name="metadata">
                <f:event type="preRenderView" listener="#{myBean.preRenderView}"/>
            </ui:define>
            <ui:define …
Run Code Online (Sandbox Code Playgroud)

java facelets jsf-2

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

配置.NET应用程序以运行提升

我正在构建我想要从一开始就提升的.NET 3.5应用程序.其目的是配置和控制服务.

我无法在Visual Studio 2010中的任何位置找到可用于以这种方式配置应用程序的任何设置.您认为项目属性中的某个复选框会显示"运行提升",但似乎不存在此类设置.

.net c# visual-studio-2010

4
推荐指数
1
解决办法
686
查看次数