我应该如何在我的RESTful JAX-RS Web服务中logging未捕获的exception?

我有一个使用Jersey和Jackson在Glassfish 3.1.2下运行的RESTful Web服务: @Stateless @LocalBean @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("users") public class UserRestService { private static final Logger log = …; @GET @Path("{userId:[0-9]+}") public User getUser(@PathParam("userId") Long userId) { User user; user = loadUserByIdAndThrowApplicableWebApplicationExceptionIfNotFound(userId); return user; } } 对于预期的exception,我抛出相应的WebApplicationException ,并且如果发生意外的exception,则返回HTTP 500状态。 我现在想为这些意想不到的exception添加日志logging,但是尽pipesearch,但无法find我应该如何去做这件事。 无果而终的尝试 我已经尝试过使用Thread.UncaughtExceptionHandler并且可以确认它应用在方法体内部,但是它的uncaughtException方法从来没有被调用,因为别的东西在它们到达我的处理程序之前处理了未捕获的exception。 其他想法:#1 我见过一些人使用的另一个选项是一个ExceptionMapper ,它捕获所有exception,然后过滤掉WebApplicationException: @Provider public class ExampleExceptionMapper implements ExceptionMapper<Throwable> { private static final […]

我应该为JavaScript源文件映射文件使用哪种MIMEtypes?

我想将源地图添加到我的网站,但是我想对它们的服务方式进行一些控制。 什么是适合他们的MIMEtypes? 一些数据 内容本身是JavaScript,但并不意味着要被执行。 CDN.js通过Content-Type: application/octet-stream提供http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.map 。 Google通过Content-Type: application/json提供http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.map 源地图规范指出地图应该以)]}来防止它们被评估为实际的JavaScript(从而暴露跨站脚本攻击)。 这使得该文件无效的JSON和有效的,但无法运行的JavaScript。

Amazon RDS停止实例

我正在使用Amazon RDS,但是我不需要实例全天24小时运行,因为我现在只是在开发。 有没有办法阻止RDS实例,当我不需要它? 我不想支付我不使用的东西!

onTouchListener警告:当检测到点击时,onTouch应该调用View#performClick

我已经创build了一个onTouchListener 。 不幸的是onTouch()方法throws一个警告: com/calculator/activitys/Calculator$1#onTouch should call View#performClick when a click is detected 这是什么意思? 我还没有find任何关于这个警告的信息。 以下是完整的代码: LinearLayout llCalculatorContent = (LinearLayout) fragmentView.findViewById(R.id.calculator_content); llCalculatorContent.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Tools.hideKeyboard(getActivity(), getView()); getView().clearFocus(); return false; } });

Java中setSeed后的第一个随机数总是相似的

为了给出一些上下文,我一直在用Java编写一个基本的Perlin噪声实现,当实现播种时,我遇到了一个我无法解释的错误。 为了每次为相同的种子生成相同的随机权向量,无论查询哪组坐标的噪声水平,以什么顺序,我都基于原始种子和原始种子的组合生成新的种子( newSeed )加权vector的坐标,并通过运行将其用作加权vector随机化的种子: rnd.setSeed(newSeed); weight = new NVector(2); weight.setElement(0, rnd.nextDouble() * 2 – 1); weight.setElement(1, rnd.nextDouble() * 2 – 1); weight.normalize() NVector是vectormath的自制课程。 但是,运行时,程序产生非常糟糕的噪音: 经过一番挖掘之后,我发现每个向量的第一个元素非常相似(所以在每个setSeed()调用之后的第一个nextDouble() setSeed()调用)导致向量网格中每个向量的第一个元素是相似的。 这可以通过运行来certificate: long seed = Long.valueOf(args[0]); int loops = Integer.valueOf(args[1]); double avgFirst = 0.0, avgSecond = 0.0, avgThird = 0.0; double lastfirst = 0.0, lastSecond = 0.0, lastThird = 0.0; […]

android:recyclerview中的条目

我已经使用listview与条目属性如下所示: <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:entries="@array/fi"/> 现在我将其转换为RecyclerView <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent" /> 我想知道在RecyclerView是否有android:entries属性? 或者其他任何属性而不是条目?

函数参数的破坏顺序是什么?

如果分别用参数a_1 ,…, a_n调用types为T_1 ,…, T_n参数为p_1 ,…, p_n的函数f ,并且它的主体抛出一个exception,按照什么顺序完成或返回争论被毁,为什么? 如果可能,请提供标准参考。 编辑:我其实想问一下关于函数的“参数”,但是当TC和Columbo设法解决了我的困惑时,我将这个问题留给了参数,并且询问了一个关于参数的新的单独问题 。 请参阅关于这个问题的评论。

Web应用程序中的“无声”打印

我正在开发一个需要静默打印的Web应用程序 – 这是没有用户参与的。 什么是完成这个最好的方法? 它不喜欢它可以严格使用Javascript,也不是Flash和/或AIR。 我见过的最接近的Java applet。 我可以理解为什么只有任何一个网站能够做到这一点,这是一个坏主意。 这个特定的实例用于内部应用程序,如果用户需要将URL添加到受信任的站点列表,安装插件等,这是完全可以接受的。

DataContractJsonSerializer和Enums

当我使用DataContractJsonSerializer序列化一个枚举值时,它序列化枚举的数值,而不是string名称。 IE: enum foo { bar, baz } 序列化foo.bar的值返回“0”,而不是“bar”。 我更喜欢反过来,有没有办法来覆盖这个? 编辑: 因为我不想更改序列化程序,所以我使用了一个简单的解决方法。 我暴露了类中的一个属性来序列化调用ToString的值,即: // Old [DataMember] public EnumType Foo { get { return _foo; } set { _foo = value; } } // New, I still kept the EnumType but I only serialize the string version public EnumType Foo { get { return _foo; } […]

为什么Rails迁移定义应用程序中的外键而不是数据库中?

如果我定义了一个Customer “有很多” Orders的Customer和Order模型,并且Order “属于” Customer ,我们在Rails中通过customer_id来讨论Order有一个外部关键字,但我们并不是说这个在数据库中执行。 由于Rails没有将其定义为数据库级别的约束,因此可能在应用程序之外(或者如果您收到同时发生的请求,则在内部)违反了数据完整性的风险,除非您手动强制实施数据库中的约束。 为什么Rails没有在数据库级别定义外键,或者有没有办法让Rails做到这一点? class Customer < ActiveRecord::Base has_many :orders end class Order < ActiveRecord::Base belongs_to :customer end ActiveRecord::Schema.define(:version => 1) do create_table "customers", :force => true do |t| t.string "name" end create_table "orders", :force => true do |t| t.string "item_name" t.integer "customer_id" end end