小编thr*_*ups的帖子

Gson处理对象或数组

我有以下课程

public class MyClass {
    private List<MyOtherClass> others;
}

public class MyOtherClass {
    private String name;
}
Run Code Online (Sandbox Code Playgroud)

我有JSON可能看起来像这样

{
  others: {
    name: "val"
  }
}
Run Code Online (Sandbox Code Playgroud)

或这个

{
  others: [
    {
      name: "val"
    },
    {
      name: "val"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我希望能够MyClass对这两种JSON格式使用相同的格式.有没有办法用Gson做到这一点?

gson

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

在Haskell中建模域数据

我正在使用Haskell设计更大的Web应用程序.这纯粹是为了我的教育和兴趣.

我首先写出我的域/值对象.一个例子是用户.这是我到目前为止所提出的

module Model (User) where

class Audited a where
    creationDate :: a -> Integer
    lastUpdatedDate :: a -> Integer
    creationUser :: a -> User
    lastUpdatedUser :: a -> User

class Identified a where
    id :: a -> Integer

data User = User { userId :: Integer
                 , userEmail :: String
                 , userCreationDate :: Integer
                 , userLastUpdatedDate :: Integer
                 , userCreationUser :: User
                 , userLastUpdatedUser :: User
                 }

instance Identified User where
    id u = userId u 

instance Audited User …
Run Code Online (Sandbox Code Playgroud)

haskell

17
推荐指数
2
解决办法
1852
查看次数

LockObtainFailedException使用solr更新Lucene搜索索引

我已经google了很多.大多数问题都是由JVM崩溃后留下的锁引起的.这不是我的情况.

我有一个包含多个读者和作者的索引.我正在尝试进行批量索引更新(删除和添加 - 这就是lucene更新的方式).我正在使用solr的嵌入式服务器(org.apache.solr.client.solrj.embedded.EmbeddedSolrServer).其他编写者正在使用远程非流式服务器(org.apache.solr.client.solrj.impl.CommonsHttpSolrServer).

我启动了这个大规模的更新,它运行了一段时间,然后死了一个

引起:org.apache.lucene.store.LockObtainFailedException:Lock获取超时:NativeFSLock @/.../lucene-ff783c5d8800fd9722a95494d07d7e37-write.lock

我在solrconfig.xml中调整了锁定超时

<writeLockTimeout>20000</writeLockTimeout>
<commitLockTimeout>10000</commitLockTimeout>
Run Code Online (Sandbox Code Playgroud)

我即将开始阅读lucene代码来解决这个问题.任何帮助,所以我不必这样做会很棒!

编辑:我的所有更新都通过以下代码(Scala):

val req = new UpdateRequest
req.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false)
req.add(docs)

val rsp = req.process(solrServer)
Run Code Online (Sandbox Code Playgroud)

solrServer 是org.apache.solr.client.solrj.impl.CommonsHttpSolrServer,org.apache.solr.client.solrj.impl.StreamingUpdateSolrServer或org.apache.solr.client.solrj.embedded.EmbeddedSolrServer的实例.

另一个编辑:我停止使用EmbeddedSolrServer,现在可以使用了.我有两个单独的进程来更新solr搜索索引:

1)Servlet 2)命令行工具

命令行工具使用的是EmbeddedSolrServer,它最终会因LockObtainFailedException而崩溃.当我开始使用StreamingUpdateSolrServer时,问题就消失了.

我仍然有点困惑,EmbeddedSolrServer可以工作.有人可以解释一下吗.我认为它会对Servlet进程起到很好的作用,并且在另一个写入时它们会等待.

lucene solr

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

Java Servlet部署 - 嵌入或不嵌入 - Tomcat/Jetty

我有几个webapps部署到生产.我已经使用Tomcat作为我的servlet引擎已经有10年了.我正在考虑从部署-war-into-Tomcat模型中嵌入Jetty模型.

这些webapps部署在多个服务器上,其中一些是水平扩展的(使用基于nginx IP哈希的分区).

我看到一些优点:

  • 我可以为特定的webapp配置我的servlet引擎(而不是为Tomcat运行几个不同的webapps的通用配置)

  • 通过在同一主机上运行多个Jetty实例(配置为侦听不同的端口),可以更轻松地水平扩展我的webapp.我也可以用Tomcat做这个(我过去在同一台主机上运行过多个tomcat实例),但是我已经开始使用Debian软件包(.deb档案)进行部署,并且运行多个Tomcats并不容易这种方法.

  • 我的部署包(.deb)在构建时更加"完整",即我不必确定Tomcat实例是否配置正确.

缺点:

  • 在服务器上运行的更多servlet引擎实例意味着使用更多资源

  • 我从未使用过Jetty.我认为我的webapps中没有任何特定于Tomcat的东西,但我不确定.

我主要担心的是Jetty将使用的资源量.如果我有一个运行4个webapps的Tomcat实例,那么资源(内存/处理器)与运行四个Jetty实例的区别是什么?

这个问题可能过于开放,但我很想知道我是否忽略了某些东西,或者是否有任何人从Tomcat迁移到(嵌入式)Jetty.

java deployment tomcat embedded-jetty

9
推荐指数
1
解决办法
5682
查看次数

我怎样才能将物化视图作为物化视图pg_dump而不是表格?

我正在尝试将pg_dump(v9.3.4)从一个db和pg_restore转换为另一个(v9.3.6).我有几个物化视图(一些具有索引,一些没有索引).我的一个物化视图被转储为一个表(我已经通过查看pg_dump输出确认了这一点).如何将其作为物化视图转储?

这是我在pg_dump输出中看到的内容:

CREATE TABLE my_mv (
  /* ... */
);

/* ... */

CREATE INDEX my_mv_col_1_idx ON my_mv USING btree (col_1);

/* ... */

CREATE RULE "_RETURN" AS
    ON SELECT TO my_mv DO INSTEAD  WITH tmp_1 AS (

/* ... */
Run Code Online (Sandbox Code Playgroud)

我的其他MV看起来像这样:

CREATE MATERIALIZED VIEW my_good_mv AS
  SELECT /* ... */
WITH NO DATA;

/* ... */

CREATE INDEX my_good_mv_job_col_1_idx ON my_good_mv USING btree (col_1);

/* ... */

REFRESH MATERIALIZED VIEW my_good_mv;
Run Code Online (Sandbox Code Playgroud)

我已经证实这是一个MV:

xxx=# SELECT relkind FROM pg_class WHERE oid …
Run Code Online (Sandbox Code Playgroud)

postgresql pg-dump materialized-views

9
推荐指数
1
解决办法
2610
查看次数

用于DB支持的应用程序的Haskell数据结构

这是我使用Haskell的第一个程序.我正在编写它以实现我所读到的关于FP的所有内容.我想弄清楚的第一件事是如何建模我将从数据库中提取的数据(最终我也将写入数据库).我从users桌子开始写了这样的东西

module Model (User) where

class Audited a where  
  creationDate :: a -> Integer
  lastUpdatedDate :: a -> Integer
  creationUser :: a -> User
  lastUpdatedUser :: a -> User

class Identified a where
  id :: a -> Integer

data User = User {userId :: Integer}

instance Identified User where
  id u = userId u
Run Code Online (Sandbox Code Playgroud)

module Main (main) where
import Model (User)

data Point = Pt {pointx, pointy :: Float}

instance Show Point where
  show (Pt x y) …
Run Code Online (Sandbox Code Playgroud)

haskell types data-structures

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

svcutil.exe - 如何获取WSDL

我正在使用SOAP接口.接口提供商无法获得完整的WSDL(长篇故事).他们让我使用svcutil.exe来生成我需要的一切.据我所知,svcutil.exe

  • 需要窗户 - 我没有可用的窗户
  • 生成C#或VisualBasic

如果它可以吐出一个WSDL就好了.或者,如果我可以通过Linux做些什么,那也会很棒.

我是否有任何选项,或者我只需要等待提供程序来获取WSDL.

我想问题是,给定一个URL和使用svcutil.exe的说明,如何编写代码以仅使用Linux来使用SOAP服务?

linux soap svcutil.exe

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

Javascript库创建日历HTML

我想找一个能动态生成日历(月视图)的Javascript库.就像是

createCalendar(1, 2011)
Run Code Online (Sandbox Code Playgroud)

为2011年1月创建日历.

我还需要突出显示某些天,所以我需要能够在createCalendar方法中指定它,或者能够使用CSS选择器选择某些天.

我不需要一个datepicker.这仅用于显示目的.

html javascript calendar

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

帮助我理解这个Scala代码:scalaz IO Monad和implicits

这是这个问题的后续内容.

这是我试图理解的代码(来自http://apocalisp.wordpress.com/2010/10/17/scalaz-tutorial-enumeration-based-io-with-iteratees/):

object io {
  sealed trait IO[A] {
    def unsafePerformIO: A
  }

  object IO {
    def apply[A](a: => A): IO[A] = new IO[A] {
      def unsafePerformIO = a
    }
  }

  implicit val IOMonad = new Monad[IO] {
    def pure[A](a: => A): IO[A] = IO(a)
    def bind[A,B](a: IO[A], f: A => IO[B]): IO[B] = IO {
      implicitly[Monad[Function0]].bind(() => a.unsafePerformIO,
                                        (x:A) => () => f(x).unsafePerformIO)()
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这段代码是这样使用的(我import io._暗示是隐含的)

def bufferFile(f: File) = IO …
Run Code Online (Sandbox Code Playgroud)

monads scala scalaz

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

使用 nix 包管理器在 osx 上运行 postgres

我在 OSX 上使用 nix 作为包管理器。我已经安装了 postgres。现在我想启动和停止 postgres 服务器(和其他相关实用程序)。我可以编写一个脚本来手动执行此操作,并编辑我的配置。但是,在 OSX 上有没有一种“最佳实践”的方法来做到这一点?例如,我在 ~/.nix-profile/share 下找到了 postgres 配置,某处是否有 OSX 的启动脚本?

macos nix

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