小编Ste*_*ote的帖子

使用一个属性连接对象数组

我有一些具有一些属性的对象,例如'value'和'label'.

array.join(' ') 当然给了我"[object] [object]",但我需要得到一个由空格分隔的所有对象的'value'属性字符串.

最简单的方法是什么,这是否可以在不编写for循环的情况下实现?

javascript jquery

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

CDI对象不可与注入的构造函数一起代理

尝试将参数注入CDI bean(ApplicationScoped)的构造函数时,遇到以下问题:

Caused by: org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001435: Normal scoped bean class xx.Config is not proxyable because it has no no-args constructor - Managed Bean [class xx.Config] with qualifiers [@Default @Named @Any].
    at org.jboss.weld.bean.proxy.DefaultProxyInstantiator.validateNoargConstructor(DefaultProxyInstantiator.java:50)
    at org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:217)
    at org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:178)
Run Code Online (Sandbox Code Playgroud)

但是,我在类上确实有一个可注入的构造函数:

@Inject
public Config(ConfigLocator configLocator) {
    defaultConfigPath = configLocator.getPath();
    doStuff();
}
Run Code Online (Sandbox Code Playgroud)

使用默认构造函数,变量注入和postconstruct方法,这些都可以正常工作,但是在这种情况下,我更喜欢使用构造函数注入。

有什么想法怎么了?

java dependency-injection cdi weld

12
推荐指数
3
解决办法
3845
查看次数

sessionID是如何生成的?

当使用servlet api(如JSF或JSP页面)运行java Web应用程序时,在该行的某处,会生成"唯一"SessionID以标识用户的会话.

我想知道如何生成这些sessionID.它们是否包含客户的IP?时间戳?随机数?

其次,我想知道这一代发生在哪里?这取决于运行应用程序的服务器吗?

java tomcat servlets java-ee

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

如何使用php日志配置logrotate

我正在运行带有APC的php5 FPM作为操作码和应用程​​序缓存.像往常一样,我将php错误记录到文件中.

由于这变得非常大,我尝试配置logrotate.它可以工作,但是在轮换之后,php会继续记录到现有的日志文件,即使重命名它也是如此.这导致scripts.log为0B文件,scripts.log.1继续增长.

我觉得(没试过),在postrotate运行PHP5-FPM重装可以解决这个问题,但是这将每次清楚我的APC缓存.

有谁知道如何正常工作?

php linux logrotate

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

为简单的功能创建内部类是一种好习惯吗?

对于简单的内部类有一些不同的看法,所以我想知道对什么是好的以及何时使用私有内部类有一个普遍的共识.

这是我发现的一个例子,我认为没有必要创建一个内部类.这有多好/坏?

private static class InternalCounter {
  int count;

  public InternalTabManager() {
    count = 0;
  }

  public int increment() {
    return count++;
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,在这种特殊情况下,一个实例保留在周围的类中以跟踪计数.

java inner-classes

7
推荐指数
2
解决办法
3810
查看次数

在构建viewroot之后如何应用JSF2 phaselistener?

在我的JSF2应用程序中,我有一个phaselistener需要在RENDER_RESPONSE之前执行,但是在JSF构建了viewroot之后.

首先,我所做的是在faces-config中注册我的PhaseListener.然后调用侦听器,但是当我执行beforePhase时,getViewRoot().getChildren()仍然是空的.

其次,我通过在我的xhtml页面上添加以下内容找到了如何做到这一点:

<f:phaseListener type="be.application.PolicyController" />
Run Code Online (Sandbox Code Playgroud)

这很好用,但是将它添加到我的每个页面都会非常繁琐.因此,我正在寻找为我的申请做一次的可能性.

有什么想法可以做到这一点?

jsf-2 phaselistener

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

在jar中找不到带注释的自定义JSF2组件

我们正在将JSF1.2迁移到JSF2应用程序,我遇到了自定义组件的问题.我们有一个带有组件的独立罐子,在那个罐子里我有这个:

@FacesComponent(value = "Panel2")
public class Panel2 extends UIOutput { ... }
Run Code Online (Sandbox Code Playgroud)

在我的META-INF下的taglib中我有这样的:

<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd"
    id="mw">
    <namespace>http://www.ssss.be/jsf/mw</namespace>
    <composite-library-name>mw</composite-library-name>
    <tag>
        <tag-name>panel2</tag-name>
        <component>
            <component-type>Panel2</component-type>
        </component>
    </tag>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)

在制作了一个这样的jar并在我的其他项目中使用它之后,我使用如下标记:

xmlns:mw="http://www.sofico.be/jsf/mw"
Run Code Online (Sandbox Code Playgroud)

然后:

<mw:panel2 />
Run Code Online (Sandbox Code Playgroud)

但不幸的是结果:

javax.faces.FacesException: Expression Error: Named Object: Panel2 not found. at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1858)
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1129)
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

java jsf custom-component jsf-2

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

我们需要捕获 servlet 中的所有异常吗?

在各种代码质量扫描器中,都有适当的规则来警告从 servlet 内抛出异常。

最特别的是“servlet 方法不应抛出异常”: https: //sonarcloud.io/organizations/default/rules ?open=squid%3AS1989&rule_key=squid%3AS1989

该规则指出,可能会向公众泄露敏感信息,但是当我们在 web.xml 中配置了正确的错误页面时,情况真的是这样吗?

<error-page>
    <error-code>500</error-code>
    <location>/error.xhtml</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

根据一些设置和异常类型,该页面决定向公众显示的内容以及记录问题。这为我们提供了一种处理应用程序中各种 servlet 异常的通用方法。

所以,我的问题是:该规则与本案相关吗?如果是这样,我可能会忽略什么?

java servlets exception sonarqube

5
推荐指数
0
解决办法
223
查看次数

如何测试我的Oracle DB版本是否支持PIVOT功能?

我需要找出一种方法来确定Oracle是11g还是更新,因为基本上我需要知道我运行的数据库是否支持PIVOT.

得到版本号如果自己不那么困难,所以我得到:

select * from v$version 
Run Code Online (Sandbox Code Playgroud)

不幸的是,这并不是一个简单的数字,而是包括叮咬和各种不同版本号的5条记录:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE    10.2.0.5.0  Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production
Run Code Online (Sandbox Code Playgroud)

那么,如果数据库支持PIVOT语句,有没有办法确定我的Oracle是11g还是更高,甚至更好?

谢谢!

database oracle oracle11g

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

信任 SSL 证书:Commons HTTP 客户端如何比标准 Java 信任更多?

为了验证 JWT,我使用 jose4j 从 url 获取证书,在这种情况下,从谷歌:

    HttpsJwks httpsJkws = new HttpsJwks("https://www.googleapis.com/oauth2/v3/certs");
    HttpsJwksVerificationKeyResolver httpsJwksKeyResolver = new HttpsJwksVerificationKeyResolver(httpsJkws);
    //httpsJkws.setSimpleHttpGet(simpleHttpGet);
    JwtConsumer jwtConsumer = new JwtConsumerBuilder()
            .setVerificationKeyResolver(httpsJwksKeyResolver)
            .build(); // create the JwtConsumer instance
Run Code Online (Sandbox Code Playgroud)

但是,这让我得到一个证书错误:

PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效认证路径

好的,是的,我可以使用一些脚本将它添加到 JVM 的信任库中,但我不想(基本上,它不是自签名证书,并且可以通过常规浏览器正常工作)。大多数时候,我使用 Apache HTTP 客户端 4.x,出于某种原因,在那里,调用确实可以正常工作:

    try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
        HttpResponse httpResponse = httpClient.execute(new HttpGet("https://www.googleapis.com/oauth2/v3/certs"));
        String response = (httpResponse.getEntity() != null) ? EntityUtils.toString(httpResponse.getEntity()) : null;
        log.debug(response);
    } catch (IOException e) {
        log.error("I/O Error when retrieving content from '" + jwksEndpointUrl + "': " + e.getMessage()); …
Run Code Online (Sandbox Code Playgroud)

java ssl websphere-liberty apache-httpclient-4.x jose4j

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

分析java heapdumps:为什么枚举实例保存在堆中?

我一直在寻找我的应用程序中的内存泄漏和fhat与jhat,由于某种原因,枚举的实例保存在堆中.

为了模拟它,我已经在tomcat中部署了我的应用程序,稍微使用它,停止它并在tomcat上执行GC(通过jconsole).然后拿了一个heapdump发现了这个:

instance of x.mgbean.quote.Input$Tab@0xe0887c0 (16 bytes)
Class:
class x.mgbean.quote.Input$Tab
Instance data members:
name (L) : VEHICLE (24 bytes)
ordinal (I) : 0
References to this object:
java.util.HashMap$Entry@0xe15f7c0 (24 bytes) : field value
class x.mgbean.quote.Input$Tab (84 bytes) : static field VEHICLE
[Lx.mgbean.quote.Input$Tab;@0xe0887f0 (20 bytes) : Element 0 of  [Lx.mgbean.quote.Input$Tab;@0xe0887f0
[Lx.mgbean.quote.Input$Tab;@0xe1541e8 (20 bytes) : Element 0 of  [Lx.mgbean.quote.Input$Tab;@0xe1541e8
Run Code Online (Sandbox Code Playgroud)

知道怎么会这样吗?

java enums heap-memory heap-dump

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

测试Object是否是特定类型的通用列表

由于各种原因,我的方法接受泛型Object参数.该方法的作用取决于实际类型,因此我做了一些实例

现在,在一个特定的情况下,我需要检查类型是否是Iterable.

我发现带有泛型的instanceof不起作用.

x instanceof Iterable<Integer>
Run Code Online (Sandbox Code Playgroud)

那么除了循环每个元素并测试它们的类型之外,有哪些替代方案呢?

java generics instanceof

0
推荐指数
1
解决办法
391
查看次数