小编Pan*_*sis的帖子

CDI会话范围传播:瞬态与长期运行

来自Weld CDI文档:

会话上下文自动传播任何JSF面部请求(JSF表单提交)或重定向.它不会自动传播非面部请求,例如,通过链接导航.

我想知道,跨越JSF的上下文传播是否也要求进行瞬态对话?更一般地说,是否存在关于瞬态和长期对话之间传播的差异的概述?

假设第一个问题的答案为"是",您是否可以提供需要长时间对话的用例?

cdi conversation-scope weld

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

C++虚拟继承和类型转换/复制构造函数混淆

我有以下代码:

class A
{
};

class B: public virtual A
{
public:
    B()
    {
        cerr << "B()";
    }
    B(const A& a)
    {
        cerr << "B(const A&)";
    }
};

class C: public B
{

};

int main(int argc, char **argv)
{
    B *b = new B(C());
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,B(const A&a)没有被调用.这是为什么?

c++ casting copy-constructor virtual-inheritance

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

JNI:获取超类中私有方法的方法ID

我试图从另一个方法的本机实现中调用私有方法,如下所示:

jclass cls = (*env)->GetObjectClass(env, obj);
jmethodID output_mid = (*env)->GetMethodID(env, cls, "methodName", "(Ljava/lang/String;)V");
if (output_mid == 0)
{
    // Exit
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个“找不到方法”的异常。据我所知,类对象必须与定义目标方法的类相对应,因为它是私有的。

事实上,如果我将访问修饰符更改为 protected,错误就会消失。另外从日志中,我看到 GetObjectClass 返回了运行时类,而不是基类。所以,我的问题是:如何在 JNI 中获取正确的基类?

c java methods java-native-interface

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

C++重载指针的类型转换操作符

我有这样的转换:

Class1 *p1;
Class2 *p2 = new Class2();
p1 = (Class1 *) p2;
Run Code Online (Sandbox Code Playgroud)

我可以覆盖上面的类型转换操作符以返回自定义的Class1对象指针吗?如果有,怎么样?

编辑:我的确切问题是我有这样的代码:

if (*$1 == ArrayType(AnyType()))
{
    $$ = ((ArrayType *) $1)->getElementsType();
}
Run Code Online (Sandbox Code Playgroud)

运算符==超载,因此$ 1可能是AnyType*类型.

c++ pointers casting operator-overloading bison

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

RichFaces fileupload和h:message问题

我正在使用RichFaces 4.我的问题是该消息根本没有出现.如果我使用rich:message,则消息会短暂显示然后消失.

这是控制器:

public void uploadListener(final FileUploadEvent event) throws IOException
{
    final UploadedFile item = event.getUploadedFile();

    final FacesContext context = FacesContext.getCurrentInstance();
    final Application application = context.getApplication();
    final String messageBundleName = application.getMessageBundle();
    final Locale locale = context.getViewRoot().getLocale();
    final ResourceBundle resourceBundle = ResourceBundle.getBundle(messageBundleName, locale);

    final String msg = resourceBundle.getString("upload.failed");
    final String detailMsgPattern = resourceBundle.getString("upload.failed_detail");

    try
    {
        CSVImporter.doImport(item.getInputStream(), registry, item.getName());
    }
    catch (ParseException e)
    {
        final Object[] params = {item.getName(), e.getMessage()};
        final String detailMsg = MessageFormat.format(detailMsgPattern, params);
        final FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, …
Run Code Online (Sandbox Code Playgroud)

file-upload richfaces jsf-2

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