小编Dan*_*lay的帖子

获取服务器地址和应用程序名称

环境:NetBeans 6.9.1,GlassFish 3.1

我有一个Java Web应用程序.如何动态获取服务器地址和应用程序名称?'2in1'解决方案对我来说是最好的:http://localhost:8080/AppName/.

有没有实用的方法来获取这些信息?

假设它的值AppName是固定的,所以我只需要主机地址.是否可以通过JMX检索它?还有其他方法吗?

java jmx servlets

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

SELECT 常量数组

在 MySQL 中,如何SELECT对常量值数组执行 a ?类似的东西:

SELECT ['1', '2', '3'] AS ID;

所需的输出是:

+-----+
| ID  |
+-----+
| 1   |
| 2   |
| 3   |
Run Code Online (Sandbox Code Playgroud)

mysql

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

如何在使用Jackson序列化时仅包含特定属性

我试图实现一个通用方法,将给定对象序列化为JSON,但只有那些在集合中传递的属性.如果可能的话,我希望在没有指定@JsonFilter类的情况下获得此功能.为此,我试图使用FilterExceptFilter杰克逊2.4.1.依赖关系:

这就是我现在所拥有的:

public static String serializeOnlyGivenFields(Object o,
                    Collection<String> fields) throws JsonProcessingException {
    if ((fields == null) || fields.isEmpty()) return null;

    Set<String> properties = new HashSet<String>(fields);

    SimpleBeanPropertyFilter filter =
        new SimpleBeanPropertyFilter.FilterExceptFilter(properties);
    SimpleFilterProvider fProvider = new SimpleFilterProvider();
    fProvider.addFilter("fieldFilter", filter);
    fProvider.setDefaultFilter(filter);

    ObjectMapper mapper = new ObjectMapper();
    mapper.setFilters(fProvider);

    String json = mapper.writeValueAsString(o);
    return json;
}
Run Code Online (Sandbox Code Playgroud)

但是,永远不会应用过滤器.它总是序列化所有属性.

Set<String> fields = new HashSet<String>(); fields.add("name");
String json = Serializer.serializeOnlyGivenFields(e, fields);
System.out.println(json);
Run Code Online (Sandbox Code Playgroud)

{"name":"测试实体","描述":"测试说明"}

我也曾尝试注册FilterProvider …

serialization json filter jackson

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

SSLv2Hello - javax.net.ssl.SSLException:收到致命警报:unexpected_message

我试图在基于Java 6(更新31)的客户端上调用在JDK7/WildFly 8.2上运行的受SSL保护的Web服务.

我在客户端遇到的第一个问题是:

javax.net.ssl.SSLException:收到致命警报:unexpected_message

通过设置javax.net.debugall双方,我在服务器端得到以下提示:

javax.net.ssl.SSLHandshakeException:已禁用SSLv2Hello

快速研究表明,

默认情况下,客户端上禁用SSLv2Hello:在Java SE 7中,SSLv2Hello将从客户端上的默认启用协议列表中删除.

所以我试图SSLv2Hello在WildFly中启用standalone.xml:

<https-listener name="https" 
                socket-binding="https" 
                security-realm="UndertowRealm"
                enabled-protocols="SSLv2, SSLv2Hello, TLSv1, TLSv1.1, TLSv1.2"
                />
Run Code Online (Sandbox Code Playgroud)

而服务器上的结果是:

javax.net.ssl.SSLHandshakeException:没有合适的协议(协议被禁用或密码套件不合适)

所以我意识到,我应该尝试在客户端强制使用TLS,而不是在服务器上启用SSLv2Hello.我试图在我的Web服务调用之前设置,但没有任何效果.System.setProperty("https.protocols", "TLSv1");

我应该配置什么以及如何使握手工作?

SSLSocketFactory在服务器上打印了默认支持的密码套件:

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
TLS_ECDHE_RSA_WITH_RC4_128_SHA,
SSL_RSA_WITH_RC4_128_SHA,
TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
TLS_ECDH_RSA_WITH_RC4_128_SHA,
SSL_RSA_WITH_RC4_128_MD5,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV
Run Code Online (Sandbox Code Playgroud)

java ssl

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

针对数据库的JAX-WS身份验证

我正在实现一个将由外部Java和PHP客户端使用的JAX-WS Web服务.

客户端必须使用存储在每个客户端的数据库中的用户名和密码进行身份验证.

最好使用哪种身份验证机制来确保misc客户端可以使用它?

java security web-services

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

Metro服务和WCF客户端之间的传输安全性

更新

我有一个使用该机制保护的Metro 2.1.1 WebService Transport Security (SSL).我想使用.NET 3.5+ WCF客户端访问此服务.我发现这个链接解决了同样的问题,但是我仍然无法建立一个有效的客户端.我想我在客户端配置中混合了一些东西.

.net java ssl wcf web-services

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

Shiro JndiLdapRealm对LDAP的授权

对四郎类JndiLdapRealm的JavaDoc明确地说,授权是默认禁用,对LDAP服务器的授权应该由用户通过子类化和压倒一切的实现JndiLdapRealm#doGetAuthorizationInfo方法.是否有关于如何做到这一点,包括处理通信/协议与可随时随地LDAP服务器的示例代码?

ldap shiro

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

@Stateless webservice with JPA + JTA:如何提交托管实体的更改?

我将以下简单的webservice声明为@StatelessEJB,在GlassFish 3.1.2.2上使用EclipseLink 2.4.1运行,使用JTA DataSource连接到MySQL数据库:

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response update(TimeRow e) throws Exception {
    if ((e.getKey() == null) || !e.getKey().keyValid()) {
        return Response.status(400).build();
    }

    TimeRow existing = em.find(TimeRow.class, e.getKey());
    if (existing == null) {
        em.persist(e);
    } else {
        existing.setValues(e.getValues());
        em.flush();
    }
    return Response.status(204).build();
}
Run Code Online (Sandbox Code Playgroud)

实体类TimeRow:

@Entity
@NamedQueries({
    @NamedQuery(name="TimeRow.findAllByUser",
         query="SELECT t FROM TimeRow t WHERE t.table.userId = :uid")
})
public class TimeRow implements Serializable {

    @EmbeddedId
    private TimeRowPK key;

    @MapsId("userId")
    @JoinColumn(name = "USERID", referencedColumnName = "userId")
    @ManyToOne …
Run Code Online (Sandbox Code Playgroud)

java ejb jpa jta jax-rs

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

确定Object是否已更改的最佳方法是什么?

我在Java Web应用程序(JSF1.2,RichFaces)中创建了一些"保存"bean功能.它使用JAXB将其转换为XML字符串,然后将其存储在数据库中.如果用户将其加载回来,我想通知用户是否更改了(bean)内容并且应该再次保存.

我的想法是覆盖hashCode()'with'函数org.apache.commons.lang.builder.HashCodeBuilder,但是我有很多字段和子元素.有没有其他方法来处理这种功能?

编辑

"比较"是在另一个视图上完成的!

任何帮助,将不胜感激!

java hashcode savechanges

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

gmap PrimeFaces p:ajax

我试图用新的纬度,经度帮助更新PrimeFaces的谷歌地图p:ajax,但它不起作用......我正在使用JSF 2.0.我p:ajax早先以类似的方式使用它,它工作得很漂亮.知道为什么这不起作用吗?以下是代码,contForm是表单的id.

<h:outputText value="Latitude :"/>
<h:inputText value="#{confirmBrandRegistration.newBrand.mapLatitude}" size="10">
    <p:ajax event="blur" update="contForm:gMapID"/>
</h:inputText>
<h:outputText value=" Longitude :"/>
<h:inputText value="#{confirmBrandRegistration.newBrand.mapLongitude}" size="10" >
    <p:ajax event="blur" update="contForm:gMapID"/>
</h:inputText>
<h:outputText value=" Marker :"/>
<h:inputText value="#{confirmBrandRegistration.newBrand.mapMarker}" size="20" >
    <p:ajax event="blur" update="contForm:gMapID"
            listener="#{confirmBrandRegistration.updateMarker}"/>
</h:inputText>
</h:panelGrid>

<p:outputPanel id="gMapID">
    <f:view contentType="text/html">
        <p:gmap center="#{confirmBrandRegistration.newBrand.mapLatitude}, #{confirmBrandRegistration.newBrand.mapLongitude}" 
                zoom="16" type="HYBRID" streetView="true"
                model="#{confirmBrandRegistration.simpleModel}"
                style="width:500px;height:400px" />
    </f:view>
</p:outputPanel>
Run Code Online (Sandbox Code Playgroud)

ajax jsf primefaces primefaces-gmap

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