小编Bam*_*omy的帖子

Hibernate给出了一个奇怪的ClassCast异常(使用Transformers)

这段代码:

@Override
public List<FactCodeDto> getAllFactsWithoutParentsAsFactDto() {
    String completeQuery = FactCodeQueries.SELECT_DTO_FROM_FACT_WITH_NO_PARENTS;
    Query query = createHibernateQueryForUnmappedTypeFactDto(completeQuery);

    List<FactCodeDto> factDtoList = query.list(); //line 133
    return factDtoList;
}
Run Code Online (Sandbox Code Playgroud)

调用此方法:

private Query createHibernateQueryForUnmappedTypeFactDto(String sqlQuery) throws HibernateException {
    return FactCodeQueries.addScalars(createSQLQuery(sqlQuery)).setResultTransformer(Transformers.aliasToBean(FactCodeDto.class));
}
Run Code Online (Sandbox Code Playgroud)

给我一个ClassCastException - >跟踪的一部分:

Caused by: java.lang.ClassCastException: org.bamboomy.cjr.dto.FactCodeDto cannot be cast to java.util.Map
    at org.hibernate.property.access.internal.PropertyAccessMapImpl$SetterImpl.set(PropertyAccessMapImpl.java:102)
    at org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:78)
    at org.hibernate.hql.internal.HolderInstantiator.instantiate(HolderInstantiator.java:75)
    at org.hibernate.loader.custom.CustomLoader.getResultList(CustomLoader.java:435)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2423)
    at org.hibernate.loader.Loader.list(Loader.java:2418)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:336)
    at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1898)
    at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:318)
    at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:125)
    at org.bamboomy.cjr.dao.factcode.FactCodeDAOImpl.getAllFactsWithoutParentsAsFactDto(FactCodeDAOImpl.java:133)
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为实际上,如果你查看Hibernate的源代码,它会尝试这样做:

@Override
@SuppressWarnings("unchecked")
public void set(Object target, Object value, SessionFactoryImplementor factory) { …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate hibernate-5.x

13
推荐指数
3
解决办法
9462
查看次数

获取响应代码时文件描述符泄漏.(cxf,ssl)

我们在生产中遇到了一段时间的问题...

这是一个跟进:我的另一个问题,但更具体的方式所以我认为将其作为一个新问题发布是合理的(如果不是我只是将此信息添加到另一个问题).

在这里:

所以,我们在aix上使用cxf使用应用程序使用(ibm)java 6 weblogic进行文件描述符泄漏,我们使用自己的web服务和一个路由到我们ws的jsb.

在weblogic启动时使用File Leak Detector作为代理并转储getCurrentOpenFiles()并以编程方式过滤Listener.SocketRecord时,我们有2000多个开放套接字;

这些是java套接字和文件描述符,网络套接字(用netstat查看)按时间正确关闭,但是程序化的(以及用

lsof -p $pid_of_managed_server 2> /dev/null|grep TCP|wc -l
Run Code Online (Sandbox Code Playgroud)

)保持开放(并最终导致过多的打开文件问题)).

这是jvm中那些打开文件描述符之一的堆栈的头部:

record socket to tst-cjcsr.just.fgov.be/10.239.7.19:443 by thread:[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' on Thu Nov 10 10:25:56 CET 2016
    at java.net.PlainSocketImpl.create(PlainSocketImpl.java:188)
    at java.net.Socket.createImpl(Socket.java:411)
    at java.net.Socket.connect(Socket.java:544)
    at weblogic.net.http.HttpsClient.openWrappedSSLSocket(HttpsClient.java:565)
    at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:296)
    at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:373)
    at weblogic.net.http.HttpsClient.New(HttpsClient.java:528)
    at weblogic.net.http.HttpsURLConnection.connect(HttpsURLConnection.java:239)
    at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:409)
    at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
    at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1038)
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:266)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.doProcessResponseCode(HTTPConduit.java:1550)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1579)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1520)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1317)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) …
Run Code Online (Sandbox Code Playgroud)

java ssl aix cxf file-descriptor

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

Java类是通过eclipse中的外部maven编译的,但是不是(使用相同的maven)从命令行编译

好吧,自从我开始工作(大约10年前)以来,我一直和maven一起工作,但是这个让我很困惑......

这是我的pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>company.project</groupId>
    <artifactId>Artifact</artifactId>
    <packaging>war</packaging>
    <version>1.0.3-SNAPSHOT</version>
    <name>Name</name>

    <properties>
        <project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.birt.runtime</groupId>
            <artifactId>org.eclipse.birt.runtime</artifactId>
            <version>4.6.0-20160607</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>

        <dependency>
            <groupId>commons-digester</groupId>
            <artifactId>commons-digester</artifactId>
            <version>1.6</version>
        </dependency>

        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>2.0.2</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

    <build>

        <finalName>${project.name}</finalName>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.6.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId> …
Run Code Online (Sandbox Code Playgroud)

java eclipse maven

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

简单程序中的StackOverflowError

亲爱的,我想实现这个行为:

"入侵者将被枪杀,幸存者将再次被枪杀"

但是我得到了这个堆栈跟踪:

Exception in thread "main" java.lang.StackOverflowError
    at java.lang.String.equals(String.java:975)
    at test.Person.isDead(Person.java:14)
    at test.Shooter.shoot(Shooter.java:7)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
    at test.Shooter.shoot(Shooter.java:8)
Run Code Online (Sandbox Code Playgroud)

'物业'类:

package test;

public class Property {

    private Shooter shooter = new Shooter();

    public void punish(Person tresspasser) {

        shooter.shoot(tresspasser);
    } …
Run Code Online (Sandbox Code Playgroud)

java

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

如何优雅地解决“逗号问题”?

这是一个我用不同方式解决了很多次的问题,但从来没有得到一个优雅的解决方案。

我有一个要构建的 SQL 字符串:

$sql = "UPDATE table";
$sql .= "SET"; 
$sql .= "sqlTableName = 'Y', column2 = value2";
Run Code Online (Sandbox Code Playgroud)

现在,基于

isset($_GET['value1'])
Run Code Online (Sandbox Code Playgroud)

我想补充:

$sql .= "sqlTableName = 'Y',"
Run Code Online (Sandbox Code Playgroud)

并基于

isset($_GET['value2'])    
Run Code Online (Sandbox Code Playgroud)

我想要:

$sql .= "sqlTableName2 = 'Y',"
Run Code Online (Sandbox Code Playgroud)

要添加。

如果我在字符串之前或之后放置逗号,我就会遇到麻烦。

现在我知道如何解决它,但如何优雅地做到这一点?

php sql

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

Java中math.random的分布是怎样的?

我想在 Java 程序中使用 math.random() 。

这种获得双打的方式的分布是怎样的?

java random

-3
推荐指数
1
解决办法
125
查看次数

标签 统计

java ×5

aix ×1

cxf ×1

eclipse ×1

file-descriptor ×1

hibernate ×1

hibernate-5.x ×1

maven ×1

php ×1

random ×1

spring ×1

sql ×1

ssl ×1