小编Pan*_*sis的帖子

C++无法通过虚拟基础A从基础A转换为派生类型B.

我有三个班:

class A {};

class B : virtual public A {};
class C : virtual public A {};

class D: public B, public C {};
Run Code Online (Sandbox Code Playgroud)

尝试从A*到B*的静态强制转换我得到以下错误:

cannot convert from base A to derived type B via virtual base A
Run Code Online (Sandbox Code Playgroud)

c++ casting virtual-inheritance downcast static-cast

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

java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z

我收到此错误:

java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
Run Code Online (Sandbox Code Playgroud)

这些是我的类路径中的jar:

com.sun.faces/jsf-api/jars/jsf-api-2.0.0.jar
com.sun.faces/jsf-impl/jars/jsf-impl-2.0.0.jar
org.apache.myfaces.orchestra/myfaces-orchestra-core20/jars/myfaces-orchestra-core20-1.5-SNAPSHOT.jar
commons-lang/commons-lang/jars/commons-lang-2.1.jar
commons-logging/commons-logging/jars/commons-logging-1.1.1.jar
org.springframework/spring/jars/spring-2.5.6.jar
commons-el/commons-el/jars/commons-el-1.0.jar
org.richfaces.ui/richfaces-ui/jars/richfaces-ui-3.3.3.Final.jar
org.richfaces.framework/richfaces-api/jars/richfaces-api-3.3.3.Final.jar
commons-collections/commons-collections/jars/commons-collections-3.2.jar
commons-beanutils/commons-beanutils/jars/commons-beanutils-1.8.0.jar
org.richfaces.framework/richfaces-impl-jsf2/jars/richfaces-impl-jsf2-3.3.3.Final.jar
com.sun.facelets/jsf-facelets/jars/jsf-facelets-1.1.14.jar
org.hibernate/hibernate-core/jars/hibernate-core-3.6.0.Final.jar
antlr/antlr/jars/antlr-2.7.6.jar
dom4j/dom4j/jars/dom4j-1.6.1.jar
org.hibernate/hibernate-commons-annotations/jars/hibernate-commons-annotations-3.2.0.Final.jar
org.slf4j/slf4j-api/jars/slf4j-api-1.6.1.jar
org.hibernate.javax.persistence/hibernate-jpa-2.0-api/jars/hibernate-jpa-2.0-api-1.0.0.Final.jar
javax.transaction/jta/jars/jta-1.1.jar
org.hibernate/hibernate-c3p0/jars/hibernate-c3p0-3.6.0.Final.jar
c3p0/c3p0/jars/c3p0-0.9.1.jar
org.hibernate/hibernate-entitymanager/jars/hibernate-entitymanager-3.6.0.Final.jar
cglib/cglib/jars/cglib-2.2.jar
asm/asm/jars/asm-3.1.jar
javassist/javassist/jars/javassist-3.12.0.GA.jar
org.hibernate/hibernate-search/jars/hibernate-search-3.3.0.Final.jar
org.hibernate/hibernate-search-analyzers/jars/hibernate-search-analyzers-3.3.0.Final.jar
org.apache.lucene/lucene-core/jars/lucene-core-3.0.3.jar
org.apache.lucene/lucene-analyzers/jars/lucene-analyzers-3.0.3.jar
mysql/mysql-connector-java/jars/mysql-connector-java-5.1.13.jar
com.ocpsoft/prettyfaces-jsf2/jars/prettyfaces-jsf2-3.0.1.jar
commons-digester/commons-digester/jars/commons-digester-2.0.jar
org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar
log4j/log4j/bundles/log4j-1.2.16.jar
xom/xom/jars/xom-1.2.5.jar
xml-apis/xml-apis/jars/xml-apis-1.3.03.jar
xerces/xercesImpl/jars/xercesImpl-2.8.0.jar
xalan/xalan/jars/xalan-2.7.0.jar
org.jboss.jsfunit/jboss-jsfunit-core/jars/jboss-jsfunit-core-1.3.0.Final.jar
net.sourceforge.htmlunit/htmlunit/jars/htmlunit-2.8.jar
xalan/xalan/jars/xalan-2.7.1.jar
xalan/serializer/jars/serializer-2.7.1.jar
xml-apis/xml-apis/jars/xml-apis-1.3.04.jar
commons-collections/commons-collections/jars/commons-collections-3.2.1.jar
commons-lang/commons-lang/jars/commons-lang-2.4.jar
org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1.jar
org.apache.httpcomponents/httpcore/jars/httpcore-4.0.1.jar
commons-codec/commons-codec/jars/commons-codec-1.4.jar
org.apache.httpcomponents/httpmime/jars/httpmime-4.0.1.jar
org.apache.james/apache-mime4j/jars/apache-mime4j-0.6.jar
net.sourceforge.htmlunit/htmlunit-core-js/jars/htmlunit-core-js-2.8.jar
xerces/xercesImpl/jars/xercesImpl-2.9.1.jar
net.sourceforge.nekohtml/nekohtml/jars/nekohtml-1.9.14.jar
net.sourceforge.cssparser/cssparser/jars/cssparser-0.9.5.jar
org.w3c.css/sac/jars/sac-1.3.jar
commons-io/commons-io/jars/commons-io-1.4.jar
cactus/cactus/jars/cactus-13-1.7.1.jar
cactus/cactus-ant/jars/cactus-ant-13-1.7.1.jar
commons-httpclient/commons-httpclient/jars/commons-httpclient-2.0.2.jar
junit/junit/jars/junit-3.8.1.jar
aspectj/aspectjrt/jars/aspectjrt-1.2.1.jar
cargo/cargo/jars/cargo-0.5.jar
ant/ant/jars/ant-1.5.4.jar
Run Code Online (Sandbox Code Playgroud)

这是我的ivy.xml:

<dependencies>

        <!-- JSF 2.0 RI -->
        <dependency org="com.sun.faces" name="jsf-api" rev="2.0.0"/>
        <dependency …
Run Code Online (Sandbox Code Playgroud)

java ivy hibernate-search maven

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

映射@Lob值映射

这是我的模型的一部分:

@Entity
public class Entry
{
    @Id @GeneratedValue
    private long identifier;

    @ElementCollection
    @Column(nullable = false)
    private Map<String, String> titles;

    @ElementCollection
    @Column(nullable = false)
    @Lob
    private Map<String, String> contents;

    // Getters and setters, other fields and methods
}
Run Code Online (Sandbox Code Playgroud)

我使用@Lob注释,因为map"contents"的值可能很大.请注意,我不关心映射"contents"的键如何映射到数据库.我只是找不到一种方法来指定@Lob注释应该只应用于地图的值.

虽然Entry.titles没有问题地映射到数据库,但Entry.contents却没有.没有创建数据库表,MySQL/Hibernate抱怨:

Unsuccessful: create table myblog.Entry_contents (Entry_identifier bigint not null, contents longtext not null, contents_KEY longtext, primary key (Entry_identifier, contents_KEY)) type=InnoDB
BLOB/TEXT column 'contents_KEY' used in key specification without a key length
Run Code Online (Sandbox Code Playgroud)

任何想法都表示赞赏!

mysql annotations hibernate jpa mysql-error-1170

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

正则表达拼图

这不是家庭作业,而是旧的考试问题.我很想知道答案.

我们给出一个字母S = {0,1,2,3,4,5,6,7,8,9,+}.将语言L定义为此字母表中的字符串集合w,使得w在L中,如果:

a)w是一个数字,如42 w是(有限的)数字之和,如34 + 16或34 + 2 + 10

b)w表示的数字可以被3整除.

为L写一个正则表达式(和DFA)

regex puzzle

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

JSF列表转换器

如何为JSF2中的A类项目列表编写转换器?我已经为A类编写了一个转换器,但这些项目使用默认的toString()函数显示:"A @ hashcode".

我需要使用转换器而不是支持bean方法,以便进行验证(Hibernate Validator).

更多信息

这就是我使用列表的方式:

<h:inputText id="destinations" value="#{rule.destinations}" converter="gr.panayk.vinyls.Destination"/>
Run Code Online (Sandbox Code Playgroud)

#{rule.destinations}的List<Destination>类型.我期待以逗号分隔的已转换目的地列表.

我附上了BalusC提出的List转换器.

@FacesConverter(value="gr.panayk.vinyls.converter.DestinationList")
public class DestinationListConverter implements Converter
{
    @Override
    public Object getAsObject(final FacesContext context, final UIComponent component, final String values)
    {
        final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

        final List<Destination> result = new ArrayList<Destination>(); 
        for (String value : values.split(",", -1))
        {           
            final String trimmedValue = value.trim();

            final Set<ConstraintViolation<Destination>> violations = validator.validateValue(Destination.class, "data", trimmedValue);
            if (!violations.isEmpty())
            {
                throw new ConverterException(new FacesMessage(violations.iterator().next().getMessage()));
            }

            result.add(new Destination(trimmedValue));
        }       

        final Set<ConstraintViolation<Rule>> violations …
Run Code Online (Sandbox Code Playgroud)

java converter jsf-2

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

浮点处理器非确定性?

在没有得到不必要的细节的情况下,基于相同的输入,浮点数(x86_64)上的操作是否可能返回结果的小变化?甚至一点点不同?

我正在模拟一个基本上混乱的系统,我希望数据上的小变化具有可见效果.但是我希望,使用相同的数据,程序的行为将得到修复.不是这种情况.我对程序的每次运行都有可见但可接受的差异.

我想我已经在某个地方留下了一些未初始化的变量......

我使用的语言是C++和Python.

回答

拉塞尔的回答是正确的.浮点运算是确定性的.非决定论是由悬空指针引起的.

c++ python floating-point

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

SQLite 自然连接坏了?

我刚刚开始了解 NATURAL JOIN 并且 SQLite 并没有像我期望的那样运行。

SELECT * FROM r1 NATURAL JOIN (r2 NATURAL JOIN r3);
Run Code Online (Sandbox Code Playgroud)

SELECT * FROM (r1 NATURAL JOIN r2) NATURAL JOIN r3;
Run Code Online (Sandbox Code Playgroud)

产生相同(正确)的结果。

但是,如果我省略括号,如下所示:

SELECT * FROM r1 NATURAL JOIN r2 NATURAL JOIN r3;
Run Code Online (Sandbox Code Playgroud)

我看到 r1 和 r2 连接正确,但是 r3 根本没有连接到结果,而是形成了 r1 NATURAL JOIN r2, r3 的笛卡尔积。

第一个连接结果的属性名称是否存在问题,还是我误解了 SQL?

sql sqlite natural-join inner-join

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

Facelets自定义标记无法呈现

我正在尝试使用Facelets创建自定义标记,但它不呈现(即标记在响应中显示为未替换).

标签(/WEB-INF/facelets/tags/inputThumbnailSelector.xhtml):

<html xmlns="http://www.w3.org/1999/xhtml"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:h="http://java.sun.com/jsf/html"
   xmlns:ui="http://java.sun.com/jsf/facelets"
   xmlns:t="http://myfaces.apache.org/tomahawk">

<ui:composition>
 <div style="position: relative;">
  <img style="position: absolute; left: 0; top: 0;" src="#{image}"/>
  <div class="thumbnail-selector" style="position: absolute; left: #{backingBean.thumbnailLeft}; top: #{backingBean.thumbnailTop};"/>
 </div>
</ui:composition>

</html>
Run Code Online (Sandbox Code Playgroud)

/WEB-INF/facelets/tags/panayk.taglib.xml:

<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">

<facelet-taglib>
 <namespace>http://panayk.endofinternet.org/jsf</namespace>
 <tag>
  <tag-name>inputThumbnailSelector</tag-name>
  <source>inputThumbnailSelector.xhtml</source>
 </tag>
</facelet-taglib>
Run Code Online (Sandbox Code Playgroud)

我的web.xml包含:

<context-param>
 <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
 <param-value>/WEB-INF/facelets/tags/panayk.taglib.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

这是标记的调用方式:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
   xmlns:f="http://java.sun.com/jsf/core"
   xmlns:h="http://java.sun.com/jsf/html"
   xmlns:ui="http://java.sun.com/jsf/facelets"
   xmlns:t="http://myfaces.apache.org/tomahawk"
   xmlns:my="http://panayk.endofinternet.org/jsf">

<ui:composition template="/layout/layout.xhtml">
...  
   <my:inputThumbnailSelector image="${facesContext.externalContext.requestContextPath}/image/get.servlet?id=1" 
            backingBean="#{entryHandler}"/>
...
</ui:composition>

</html>
Run Code Online (Sandbox Code Playgroud)

提前谢谢了!

jsf facelets

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

java.security.AccessControlException:拒绝访问(java.io.FilePermission /usr/share/java/jsp-api-2.0.jar read)

我正在尝试将我的应用程序部署到Debian Lenny上的Tomcat 5.5.我收到以下异常:

java.security.AccessControlException: access denied (java.io.FilePermission /usr/share/java/jsp-api-2.0.jar read)
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做.

将以下行添加到/etc/tomcat5.5/policy.d/04webapps.policy:

grant codeBase "file:/var/lib/tomcat5.5/webapps/mywebapp/-" { permission java.security.AllPermission; };
Run Code Online (Sandbox Code Playgroud)

java security debian tomcat lenny

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

可以动态转换“this”作为返回值吗?

这更多的是一个设计问题。

我有一个模板类,我想根据模板类型向其添加额外的方法。为了实践 DRY 原则,我提出了这个模式(有意省略定义):

template <class T>
class BaseVector: public boost::array<T, 3>
{
protected:
    BaseVector<T>(const T x, const T y, const T z);
public:
    bool operator == (const Vector<T> &other) const;
    Vector<T> operator + (const Vector<T> &other) const;    
    Vector<T> operator - (const Vector<T> &other) const;
    Vector<T> &operator += (const Vector<T> &other)
    {
        (*this)[0] += other[0];
        (*this)[1] += other[1];
        (*this)[2] += other[2];

        return *dynamic_cast<Vector<T> * const>(this);
    }

    virtual ~BaseVector<T>()
    {
    }
}

template <class T>
class Vector : public BaseVector<T>
{ …
Run Code Online (Sandbox Code Playgroud)

c++ templates design-patterns dynamic-cast this

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