小编Raj*_*ajV的帖子

CDI如何删除有状态会话bean?

规范说CDI容器在范围的上下文即将被销毁时删除了SFSB.它是如何完全删除EJB的?它似乎没有调用@Remove注释的方法.

@Stateful
public class CustomerDAOImpl implements CustomerDAO {
    @PreDestroy
    public void onDestroy() {
        //This is getting called as expected
    }
    @Remove
    public void deleteMyBean() {
        //This is not getting called!
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,CDI在技术上正在做规范所说的.问题是它如何设法要求EJB容器删除实例?谢谢.

cdi ejb-3.1

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

Swift 3迁移后无法在调试器中查看变量值

我们已将iOS项目迁移到Swift 3和Xcode 8.从那时起,调试器无法显示任何变量值.如果我尝试打印变量:

p someVar
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息.SchemaManager.h是一个桥接头.(实际的项目名称已被下面的yyy替换):

warning: Swift error in module yyy.
Debug info from this module will be unavailable in the debugger.

error: in auto-import:
failed to get module 'yyy' from AST context:
/Users/xxx/Documents/yyy/yyy/Common/Model/SchemaManager.h:10:9: note: while building module 'SQLiteMacOSX' imported from /Users/xxx/Documents/yyy/yyy/Common/Model/SchemaManager.h:10:
#import <sqlite3.h>
        ^

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.0.sdk/usr/include/sqlite3.h:35:10: note: while building module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.0.sdk/usr/include/sqlite3.h:35:
#include <stdarg.h>     /* Needed for the definition of va_list */
         ^

<module-includes>:33:9: note: in file included from <module-includes>:33:
#import "util.h"
        ^

error: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/util.h:107:10: …
Run Code Online (Sandbox Code Playgroud)

xcode ios

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

如何将JSON请求发布到Jersey REST服务?

我可以成功地将XML数据发布到我的服务中,但是,尝试使用JSON执行相同操作失败了.POJO是:

@XmlRootElement
public class Address {
    String city;
    String zip;
    //Getters & setters...
}
Run Code Online (Sandbox Code Playgroud)

服务资源是:

@POST
@Produces("application/json")
public Address fix(Address a) {
    return a;
}
Run Code Online (Sandbox Code Playgroud)

我按照以下方式进行POST:

POST /AcmeWeb/svc/simple HTTP/1.1
Content-Length: 30
Content-Type: application/json; charset=UTF-8

{"city":"Miami","zip":"33130"}
Run Code Online (Sandbox Code Playgroud)

服务器正在响应400 Bad Request.我搜索了互联网,但没有找到发布JSON的好例子.任何帮助表示赞赏.谢谢.

jax-rs jersey eclipselink moxy

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

如何在JavaScript中将PCM数据编码为MP3?

我正在使用Recorder.js来录制麦克风的音频.该库可以在WAV中编码PCM数据,我可以使用它成功地播放它<audio>.但是,由此产生的WAV数据太大(5分钟录制时约为38MB).我尝试使用Speech-to-Server提供的libmp3lame.js .

recorderWorker.js,我正在导入Lame脚本:

importScripts("libmp3lame.js");
Run Code Online (Sandbox Code Playgroud)

然后,我改变了exportWAV()将PCM缓冲区编码为MP3而不是WAV的功能.

function exportWAV(type){
    var bufferL = mergeBuffers(recBuffersL, recLength);
    var bufferR = mergeBuffers(recBuffersR, recLength);
    //var interleaved = interleave(bufferL, bufferR);

    console.log("Start MP3 encoding");
    var mp3codec = Lame.init();
    Lame.set_mode(mp3codec, Lame.JOINT_STEREO);
    Lame.set_num_channels(mp3codec, 2);
    Lame.set_out_samplerate(mp3codec, sampleRate);
    Lame.set_bitrate(mp3codec, 128);
    Lame.init_params(mp3codec);

    var mp3data = Lame.encode_buffer_ieee_float(mp3codec, bufferL, bufferR);
    audioBlob = new Blob([mp3data.data], { type: "audio/mp3" });
    console.log("Done MP3 encoding");

    this.postMessage(audioBlob);
}
Run Code Online (Sandbox Code Playgroud)

但是,该Lame.encode_buffer_ieee_float方法抛出了这个错误:

Uncaught RangeError: Invalid array buffer length 
Run Code Online (Sandbox Code Playgroud)

这里的PCM数据是bufferLbufferRFloat32Array.我无法确定Lame.encode_buffer_ieee_float到底需要什么作为输入.

Lame.encode_buffer_ieee_float …

javascript mp3 html5-audio web-audio-api

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

移动可变借入的所有权

我的理解是,可变借款人可以将所有权转移给另一个可变借款人.但这一举动似乎与移动非指针变量有点不同.我们来看一个例子吧.下面的内容p1会在第一次调用p2时移动到compute().但所有权似乎回归到p1compute()回归之后.

fn compute(p2: &mut Point) {
}

fn reset(p1: &mut Point) {
    compute(p1); //OK
    compute(p1); //OK
}
Run Code Online (Sandbox Code Playgroud)

这与常规变量的移动方式不同.

fn compute(p2:  Point) {
}

fn reset(p1: Point) {
    compute(p1); //OK
    compute(p1); //Compile error
}
Run Code Online (Sandbox Code Playgroud)

现在,所有权恢复到p1第一后compute()调用返回.

由于许多原因,这两种行为都是可以理解和可取的 但我只想证实我的理解,这两个举动在本质上略有不同.我是这样思考的吗?

rust

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

如何等待所有请求完成

我正在AsyncHttpClient从命令行程序使用 ning。我需要等待所有请求结束,以便我可以安全地调用close()客户端。挑战在于我从该计划的许多不同部分提出了许多请求。onCompleted下面剥离了自己的代码,显示了我从另一个请求执行嵌套 HTTP 请求的场景:

final AsyncHttpClient asyncHttpClient = new AsyncHttpClient();

Future<Response> f1 = asyncHttpClient.prepareGet(url).execute(
    new AsyncCompletionHandler<Response>() {

        public Response onCompleted(Response response)
            throws Exception {

            //Make more HTTP calls
            Future f2 = asyncHttpClient.prepareGet(url).execute(...);

            return response;
        }
    });
Run Code Online (Sandbox Code Playgroud)

这只是示例代码。真实的代码更加复杂并且有更多的 HTTP 调用。close()在我呼叫客户之前确保所有呼叫都已完成的最佳方法是什么?

ning asynchttpclient

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

如何检测片段是否呈现或隐藏?

我正在维护片段的后堆栈,并在按下“后退”按钮时弹出堆栈。每当片段可见时,我都需要重新加载数据,并在隐藏时进行一些清理。为此,我需要检测何时显示和隐藏片段。这是一个非常常见的问题,但是令人惊讶的是,没有一个答案对我有用。一世

我正在使用如下代码向后台添加片段:

public void pushFragment(Fragment f) {
    getFragmentManager().beginTransaction()
            .add(R.id.content_frame, f, null)
            .addToBackStack(null)
            .commit();
}
Run Code Online (Sandbox Code Playgroud)

我使用以下代码弹出片段:

public void onBackPressed() {
    if (getFragmentManager().getBackStackEntryCount() > 1) {
        getFragmentManager().popBackStack();
    } else {
        super.onBackPressed();
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图从一个片段类中检测它何时变得可见或隐藏(因为它是从堆栈中弹出或另一个片段被推到顶部)。到目前为止,我已经尝试过这些回调:

  • onViewCreated / onDestroyView:仅在将片段添加到堆栈并从堆栈弹出时调用。当片段由于堆栈上的其他片段而隐藏或可见时不调用。
  • onHiddenChanged:从未调用。因此,许多人都说这可行。但是由于某种原因而不为我工作。
  • setUserVisibleHint:从未调用
  • onStart / onPause等:它们在这里并没有真正应用,因为它们只是反映了主机活动的生命周期。

是否存在Fragment回调,让我检测何时显示或隐藏了片段?我宁愿不使用Backstack侦听器,因为我希望每个片段类都具有自己的显示/隐藏逻辑。

编辑: 如果我replace()用来添加片段(而不是add()),则先前显示的片段的视图将被破坏。结果,如果该片段再次出现在堆栈顶部,则将重新创建其视图。在这种情况下,每次显示或隐藏片段时,都会调用onViewCreated / onDestroyView或onStart / onStop。我想我可以使用这种方法。缺点是视图是经常创建和销毁的。在这种情况下,我不妨使用活动而不是片段进行主从导航。

android

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

使用CriteriaBuilder时编译错误

我正在尝试将此JPA QL转换为条件构建器.JBoss 6.0.

"SELECT ba FROM BankAccount ba WHERE ba.balance >= :amt ORDER BY ba.ownerName ASC"
Run Code Online (Sandbox Code Playgroud)

我根据几个教程编写了这段代码.

public List<BankAccount> findWithBalance(int amount) {
    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<BankAccount> cq = cb.createQuery(BankAccount.class);
    Root<BankAccount> from = cq.from(BankAccount.class);

    ParameterExpression<Integer> balance = cb.parameter(Integer.class);
    cq.select(from);

    Predicate predicate = cb.gt(from.get("balance"), balance);
    cq.where(predicate);

    cq.orderBy(cb.asc(from.get("ownerName")));

    TypedQuery<BankAccount> query = em.createQuery(cq);

    return query.getResultList();
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到了一行编译错误:

Predicate predicate = cb.gt(from.get("balance"), balance);
Run Code Online (Sandbox Code Playgroud)

错误是:

The method gt(Expression<? extends Number>, Expression<? extends Number>) in the type CriteriaBuilder is not applicable for the arguments (Path<Object>, ParameterExpression<Integer>)
Run Code Online (Sandbox Code Playgroud)

java generics jpa

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

为什么我的隐式Copyable变量被移动了?

根据撰写本文时的Rust参考文献:

对于包含拥有指针或实现特殊特征Drop的值的类型,移动变量.所有其他类型都被复制.

以下是我的代码.我希望Point是一个可复制的类型.但它正在被移动,以下代码将无法在0.13.0每晚进行编译.

struct Point {
    x: uint,
    y: uint
}

fn main() {
    let p: Point = Point{x: 10u, y: 10u};

    let p1 = p;
    let p2 = p; //Error: p has been moved p1
}
Run Code Online (Sandbox Code Playgroud)

编译错误说明:

note: `p` moved here because it has type `Point`, which is moved by default
Run Code Online (Sandbox Code Playgroud)

为什么Point不被视为可复制类型?

rust

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

如何为ExpandableListView设置组分隔符颜色

在此输入图像描述

我可以使用childDivider属性(在本例中为黑色)为子项设置devider颜色.但是,我没有看到任何方法来设置折叠组之间的分隔符的颜色.系统似乎显示1px白线.

android expandablelistview

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