小编Tam*_*más的帖子

在JAX-RS中使用@ Context,@ Extider和ContextResolver

我刚刚熟悉使用JAX-RS在Java中实现REST Web服务,我遇到了以下问题.我的一个资源类需要访问存储后端,该后端在StorageEngine接口后面被抽象出来.我想将当前StorageEngine实例注入服务于REST请求的资源类中,我认为这样做的好方法是使用@Context注释和适当的ContextResolver类.这是我到目前为止:

MyResource.java:

class MyResource {
    @Context StorageEngine storage;
    [...]
}
Run Code Online (Sandbox Code Playgroud)

StorageEngineProvider.java:

@Provider
class StorageEngineProvider implements ContextResolver<StorageEngine> {
    private StorageEngine storage = new InMemoryStorageEngine();

    public StorageEngine getContext(Class<?> type) {
        if (type.equals(StorageEngine.class))
            return storage;
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用com.sun.jersey.api.core.PackagesResourceConfig自动发现提供程序和资源类,并根据日志,它StorageEngineProvider很好地获取类(时间戳和故意遗漏的不必要的东西):

INFO: Root resource classes found:
    class MyResource
INFO: Provider classes found:
    class StorageEngineProvider
Run Code Online (Sandbox Code Playgroud)

但是,storage我的资源类中的值总是如此null- Jersey的调用器StorageEngineProvider及其getContext方法都不会被调用.我在这做错了什么?

java jax-rs jersey

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

AsyncTask,它必须采取这样的性能惩罚......?

我正在开发一个小应用程序,它读取特定的html页面,重新格式化它们,然后在WebView中显示它们.如果我在GUI线程中运行我的代码,与简单地让WebView显示原始html页面相比,性能命中几乎可以忽略不计.但是,如果我是一个好孩子并且像我被告知的那样,我应该使用AsyncTask在后台运行代码,以免在我的代码完成工作的3-5秒内冻结GUI .问题是......如果我这样做,代码需要花费10倍以上的时间才能完成.页面需要60秒以上才能显示,这是不可接受的.

跟踪问题,TraceView向我显示我的AsyncTask(默认优先级)以大约10毫秒的块运行,大约每秒4次.我需要将我的线程优先级设置为MAX_PRIORITY以接近可接受的加载时间,但即使这样,它也比我在GUI线程中运行时长3-4倍.

我做错了什么,或者这只是它的工作方式?它必须以这种方式工作......?

这是可请求的可编译代码:

package my.ownpackage.athome;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class AndroidTestActivity extends Activity
{   
    WebView webview;
    //...

    private class HelloWebViewClient extends WebViewClient 
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) 
        {
            AndroidTestActivity.this.fetch(view, url);
            return true;
        }
    }

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // To allow to connect to the web and pull down html-files, reset strict mode
        // see http://stackoverflow.com/questions/8706464/defaulthttpclient-to-androidhttpclient
        if (android.os.Build.VERSION.SDK_INT > 9) 
        {
            StrictMode.ThreadPolicy policy …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask

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

在Python中计算列表的秩向量的有效方法

我正在寻找一种有效的方法来计算Python中列表的秩向量,类似于R的rank函数.在元素之间没有联系的简单列表中,列表的等级向量的元素il应该是x,当且仅当l[i]是排序列表中的第x个元素时.到目前为止,这很简单,以下代码片段可以解决这个问题:

def rank_simple(vector):
    return sorted(range(len(vector)), key=vector.__getitem__)
Run Code Online (Sandbox Code Playgroud)

然而,如果原始列表具有联系(即具有相同值的多个元素),则事情变得复杂.在这种情况下,具有相同值的所有元素应该具有相同的等级,这是使用上述朴素方法获得的等级的平均值.所以,例如,如果我有[1, 2, 3, 3, 3, 4, 5],天真的排名给了我[0, 1, 2, 3, 4, 5, 6],但我想拥有的是[0, 1, 3, 3, 3, 5, 6].在Python中哪一个是最有效的方法?


脚注:我不知道NumPy是否已经有了实现这一目标的方法; 如果确实如此,请告诉我,但无论如何我都会对纯Python解决方案感兴趣,因为我正在开发一个在没有NumPy的情况下也可以工作的工具.

python sorting list ranking

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

Android:滚动Imageview

我的ImageView是普通屏幕高度的两倍(960倾角).我想在屏幕上上下滚动它.屏幕底部应包含一个按钮.我尝试过ScrollView和Imageview的各种组合,没有任何成功.我还使用:isScrollContainer属性进行了细化而没有结果.谁知道怎么做?干杯,卢卡

android scroll imageview

24
推荐指数
5
解决办法
9万
查看次数

如何在MySQL的MySQLDB API中使用num_rows()函数?

我有这个说法

cursor = connection.cursor()
query = "SELECT * from table"
cursor.execute(query)
res = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

python mysql

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

可以没有INFO:root的python日志输出

我使用Python日志框架和默认设置.对于某些数据比较原因:我必须将日志与其他数据输出进行比较.但是python日志以默认开头,例如:

INFO:root:post params in transmitter
Run Code Online (Sandbox Code Playgroud)

我可以设置python日志输出INFO:root:,如:

post params in transmitter
Run Code Online (Sandbox Code Playgroud)

只有我自己的日志?

多谢!

python logging

14
推荐指数
4
解决办法
7447
查看次数

如何在Android上的WebView中嵌入YouTube剪辑

任何人都可以解释为什么我放在网页浏览器中时无法点击并在Android手机上播放YouTube视频片段?

我已经将一个非常简单的应用程序放在一起(它正在扩展,但没有立即)并且它具有使用Android SDK分配的Web视图.

webview的其余部分按预期工作(文本,图像,CSS等),但是,YouTube剪辑不会显示,它们只显示为黑色或白色矩形(视频嵌入的位置应该是).

我们使用相同的视图在iPhone应用程序上显示相当的内容,没有任何问题.

这是使用基本的Flash嵌入,iPhone上的Safari浏览器将这些转换为H.264并在QuickTime中很好地播放它们.

Android能做同样的事吗?

这是嵌入代码,作为一个例子....

<object width="120" height="73">
    <param name="movie" value="http://www.youtube.com/watch?v=ZVYIBIlTIQs&feature=youtube_gdata"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/watch?v=ZVYIBIlTIQs&feature=youtube_gdata" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="120" height="73"></embed>
</object>
Run Code Online (Sandbox Code Playgroud)

html youtube iframe html5 android

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

Python DB-API:如何处理不同的参数?

我正在实现一个Python本体类,它使用数据库后端来存储和查询本体.数据库模式是固定的(事先指定),但我不知道正在使用什么类型的数据库引擎.但是,我可以依赖数据库引擎的Python接口使用Python DB-API 2.0(PEP 249)的事实.一个直截了当的想法是让用户将符合PEP 249的Connection对象传递给我的本体的构造函数,然后使用各种硬编码的SQL查询来查询数据库:

class Ontology(object):
    def __init__(self, connection):
        self.connection = connection

    def get_term(self, term_id):
        cursor = self.connection.cursor()
        query = "SELECT * FROM term WHERE id = %s"
        cursor.execute(query, (term_id, ))
        [...]
Run Code Online (Sandbox Code Playgroud)

我的问题是允许不同的数据库后端支持查询中的不同参数标记,由paramstyle后端模块的属性定义.例如,如果paramstyle = 'qmark',接口支持问号样式(SELECT * FROM term WHERE id = ?); paramstyle = 'numeric'表示数字,位置样式(SELECT * FROM term WHERE id = :1); paramstyle = 'format'表示ANSI C格式的字符串样式(SELECT * FROM term WHERE id = %s).如果我想让我的类能够处理不同的数据库后端,似乎我必须为所有参数标记样式做准备.这似乎打败了我的通用DB …

python sql python-db-api

13
推荐指数
2
解决办法
3316
查看次数

有效的集合交集 - 决定交集是否大于k

我遇到了一个问题,我必须计算集合中所有对之间的交叉点.这些集合都不小于小常数k,并且我只关心两个集合是否具有大于k -1元素的交集.我不需要实际的交叉点和确切的大小,只需要它是否大于k -1.是否有一些聪明的预处理技巧或整齐的交集算法可以用来加快速度?

更多信息可用于回答问题:

  • 这些集合表示大的无向稀疏图中的最大集团.集合的数量可以是数万或更多,但是大多数集合可能很小.
  • 这些集合已经是每个集合的成员递增顺序排列.实际上它们是排序列表 - 我从底层库中以这种方式接收它们以进行最大集团搜索.
  • 关于集合中元素的分布(即它们是否是紧密团块),我们都不知道.
  • 大多数设置交叉点可能都是空的,因此理想的解决方案是一个聪明的数据结构,可以帮助我减少必须设置的交叉点的数量.

language-agnostic intersection set data-structures

12
推荐指数
2
解决办法
963
查看次数

C++流作为成员变量

我有一个C++类,我想拥有一个用于记录的流.

在构造对象之后,应该能够设置(并且可能重置)流.

应该可以将流设置std::cout为文件流,或者将文件流设置为记录到文件,或者将字符串流设置为仅忽略数据(一种/dev/null类型).在任何情况下,它应该是一个ostream类型对象,对象的创建者可以随时重置.该类本身无视具体的流类型.

我可以使用指向ostream的指针来实现这一点,但是语法变得有点烦人,必须使用deref运算符:

(*m_log) << "message";
Run Code Online (Sandbox Code Playgroud)

而不是

m_log << "message";
Run Code Online (Sandbox Code Playgroud)

但是我不能使用引用,因为在初始化对象之后需要重置流对象.

有没有一种优雅的方法来实现这一点,即避免使用指针,但仍然能够在构建后重置?

c++ variables stream member

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