小编sme*_*eeb的帖子

Grails 2.4 ClassNotFoundException:Sitemesh GrailsPageFilter

请注意:这个问题几乎这个题为"从grails 2.3.8 2.4升级时的资源插件错误"的问题重复,但是在我看来,有些事情是不同的,值得将它作为一个单独的问题提出:

  • 在那个问题中,问题和任何答案都没有解释为什么会发生这种错误,除了声明正在使用的插件不再是用于加载sitemesh的官方Grails插件
  • 最重要的是:在那个问题中,从来没有接受过原始海报的答案或任何关于最终解决方案的验证.我不会这样做.

所以,我要求你在关闭/关闭投票之前作为一个骗子,请指出我在其他问题中提供的确切解决方案也将适用于我的确切情况.如果你不能那样做,请不要关闭/关闭这个问题!

我正在将Grails 2.3.6应用程序升级到Grails 2.4.4.我做的时候run-app得到:

Error |
2015-03-05 14:42:44,257 [localhost-startStop-1] ERROR [localhost].[/myapp]  - Exception starting filter sitemesh
java.lang.ClassNotFoundException: org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter
    at org.grails.plugins.tomcat.ParentDelegatingClassLoader.findClass(ParentDelegatingClassLoader.java:59)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Error |
2015-03-05 14:42:44,268 [localhost-startStop-1] ERROR core.StandardContext  - …
Run Code Online (Sandbox Code Playgroud)

grails sitemesh classnotfoundexception

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

为什么在Dropwizard指标中使用CachedGauage?

我看到CachedGaugeDropWizard Metrics(以前的Coda Hale Metrics)lib中有.我不知道为什么会有人曾经用这个?!?

指标价值的理解是它是实时,准确和相关的.如果度量标准报告过时/缓存值,它可能用于什么目的?

java metrics dropwizard codahale-metrics

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

如何在C中选择寄存器变量?

请注意:我本来打算将这个问题标题为" 何时在C中使用寄存器? ",但似乎有人已经打败了我.然而,与标题相比,问题的方式有点误导,我相信这个问题是独一无二的,而不是它的愚蠢.

然而,这个问题确实应该已经题为" register变量真的快? ",其实我是想知道何时应该使用registers.对我来说很明显它们实际上更快,但显然你的CPU只有很多芯片注册,所以你受限于它们可以存储在它们上面.

所以我问:我如何选择哪些变量应该合格register?与特定频率一起使用的变量?特定大小或类型的变量?在计算限制问题中使用的变量?别的什么?

我这样看:每个产品所有者或利益相关者,每个错误或特征都是"最优先"和关键.但是,如果你真的分析他们的需求,你会发现某些功能比其他功能更"优先".使用代码,您希望它尽可能快地运行,因此我确信每个变量都是优化/性能调优的候选者.不过,我会想象,如果你真的分析程序(或C编译器对于这个问题,让我们假设gcc),我敢肯定有一种方法来确定哪些变量是最适合与使用register.

c optimization gcc cpu-registers

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

什么时候SLF4J的"动态绑定"功能适合使用?

我对SLF4J很感兴趣,因为它似乎是唯一的Java库(至少我可以解释),它在运行时使用这种所谓的" 动态绑定 "类来定义行为.

通过这个,我的意思是,如果你slf4j-api在编译类路径中包含,你现在可以访问该JAR中包含的所有API类(LoggersLoggerFactories等),但它们的实际运行时行为是no-op(什么都不做),除非你包含一个运行时类路径上的" SLF4J绑定 ",例如slf4j-simple(将日志语句发送到STDOUTSTDERR),或者slf4j-log4j,然后期望Log4J配置等.

就像我上面所说的,这种类型的动态绑定行为似乎是SLF4J项目所特有的.

我想知道为什么?一般来说,在日志记录之外,哪种场景可以保证这种动态绑定作为解决方案?对我来说,它似乎是经典依赖注入(Spring,Guice)的替代方案,几乎将注入推迟到运行时("JIT")确定运行时类路径上可用的匹配类.

所以我问:这个解决方案是否唯一有理由只解决日志记录问题?如果是这样,为什么?如果没有,那么还有哪些其他问题需要这种方法作为解决方案?

java binding classpath classloader slf4j

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

Dropwizard和协议缓冲区示例

请注意:尽管这个问题特别提到了Dropwizard,但我相信任何具有Jersey / JAX-RS经验的人都应该能够回答这个问题,因为我认为Dropwizard只是遵循了Jersey / JAX-RS的惯例。


我有一个Dropwizard服务,该服务以JSON 进行改写 /编写,并且效果很好。

我现在想将其切换为读/写二进制数据(以最小化网络带宽)。我看到有Dropwizard-Protobuf库,但是我对在Dropwizard中实现二进制序列化有一些担忧。

首先,这是我当前(以JSON为中心)代码中的重要内容:

// Groovy pseudo-code

// Domain entity/POJO
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
class Fizz {
    @JsonProperty
    String name

    @JsonProperty
    boolean isBuzz    
}

// The Dropwizard app entry point
class FizzService extends Application<FizzConfiguration> {
    @Override
    void run(FizzConfiguration fizzCfg, Environment env) throws Exception {
        // ... lots of stuff

        env.jersey().register(new FizzService())
    }
}

// JAX-RS resource with a sample GET endpoint
@Path(value = "/fizz")
@Produces(MediaType.APPLICATION_JSON)
class …
Run Code Online (Sandbox Code Playgroud)

jax-rs jersey protocol-buffers binary-serialization dropwizard

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

为什么Guice不能绑定中间依赖?

这是我的代码:

// Groovy
interface MyMapper {
    Buzz toBuzz(Fizz fizz);
}

class MyMapperImpl implements MyMapper {
    @Named("SIMPLE_FOOBAR")
    Foobar foobar;

    MyMapperImpl(Foobar foobar) {
        super();
        this.foobar = foobar;
    }

    @Override
    Buzz toBuzz(Fizz fizz) {
        // ...etc.
    }
}

class Whistlefeather {
    MyMapper mapper;

    Whistlefeather(MyMapper mapper) {
        super();

        this.mapper = mapper;
    }

    void doSomething(Fink fink) {
        Fizz fizz = getSomehow(fink);
        Buzz buzz = mapper.toBuzz(fizz);

        // Do something with 'buzz'...
    }
}

class ApplicationMain {
    Whistlefeather whistlefeather;

    @Inject
    ApplicationMain(Whistlefeather whistlefeather) {
        super();

        this.whistlefeather = whistlefeather; …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection guice

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

安装Docker Toolbox/Mac后设置DOCKER_HOST

Mac在这里.我通过工具箱安装了Docker ,所有Docker命令都会产生同样的错误:

myuser@mymachine:~/tmp$docker info
Get http:///var/run/docker.sock/v1.20/info: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?

myuser@mymachine:~/tmp$sudo docker info
Password:
Get http:///var/run/docker.sock/v1.20/info: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
Run Code Online (Sandbox Code Playgroud)

有趣的是,然而:

myuser@mymachine:~/tmp$docker -v
Docker version 1.8.1, build d12ea79
Run Code Online (Sandbox Code Playgroud)

谷歌搜索结果 | 对于此错误表示工具箱未正确安装,并且需要设置以下(或所有)以下环境变量之一:

  • DOCKER_HOST; 和/或
  • DOCKER_CERT_PATH; 和/或 …

macos docker docker-toolbox

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

如何在Kubernetes pods内"水平"组织容器?

所以我试图围绕一个典型的Kubernetes pod看起来像什么.根据他们的文档,一个pod:

" 一个pod(如在一群鲸鱼或豌豆荚中)对应于一个以共享上下文运行的共同应用程序组. "

后来在同一篇文章中:

" Pod可用于托管垂直集成的应用程序堆栈,但它们的主要动机是支持共存...... "

好的,您可以将单个窗格组织为整个垂直堆栈(从数据库到Web应用程序).但显然这通常不是它的组织方式,所以我认为通常一个" 横向 "组织是首选的(为什么??).

但对我来说,水平分层/分层意味着你在一个pod中只有一个容器,因为通常在每个服务层(web,app,cache,db等)中你都有一种类型的组件.

我们举一个具体的例子.假设我们有以下垂直堆栈:

  • Web前端容器; Grails或Spring MVC web/app服务器
  • 微服务容器; RESTful Web服务,其中包含核心业务逻辑
  • 消息代理(比如RabbitMQ)容器
  • 微服务缓存(一些服务已经分布了位于它们之间的Hazelcast缓存集群及其DB /后备存储)容器
  • MySQL数据库集群容器
  • MongoDB集群容器
  • 第三方RESTful云API(比如SalesForce或Stripe或类似的东西)

这些是应用程序堆栈中相当典型的组件.如果我们反对Kubernetes自己的建议,并创建"垂直对齐"的pod,每个pod将由每层的一种类型的容器(web/app服务器,每个微服务,每个DB等)组成.

但是如何组织水平对齐的吊舱呢?什么容器会进入哪个容器?

architecture docker kubernetes

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

从src/groovy访问Grails服务

Grails服务是用于在控制器外部实现业务逻辑(以及连接到支持服务/ DB等)的抽象.所以在典型的控制器中你可能有:

class DashboardController {
    StatisticsService statsService

    def index() {
        // Fetches all the stats that need to be displayed to the
        // admin on the dashboard.
        AdminDashboardMetrics adm = statsService.getAdminStats()

        render(view: "/dashboard", model: [ adm: adm ])
    }
}
Run Code Online (Sandbox Code Playgroud)

在这里,Grails自动注入DashboardController一个bean实例StatisticsService(当然提供服务是否正确创建grails create-service ...).

但是当我需要在控制器StatisticsService 外部访问时会发生什么,特别是在src/groovy

// src/groovy/com/example/me/myapp/FizzBuzzer.groovy
class FizzBuzzer {
    StatisticsService statsService

    FizzBuzzer(StatisticsService statsService) {
        super()

        this.statsService = statsService
    }

    def doSomething(MyData input) {
        MoreData result = statsService.calculate(input)

        // use …
Run Code Online (Sandbox Code Playgroud)

grails dependency-injection

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

Spock rightShift(模拟)运算符显然不起作用

这是我的Spock单元测试:

def "when favorite color is red then doSomething produces empty list of things"() {
    given:
    FizzBuzz fizzBuzz = Mock(FizzBuzz)
    fizzBuzz.name >> 'Dark Helmet'
    fizzBuzz.attributes >> [:]
    fizzBuzz.attributes["favcolor"] >> 'red'
    fizzBuzz.attributes["age"] >> '36'

    Something something = new Something(fizzBuzz)

    when:
    Whoah whoah = something.doSomething()

    then:
    !whoah.things
}
Run Code Online (Sandbox Code Playgroud)

这是FizzBuzz模拟:

public interface FizzBuzz extends Serializable {
    Map<String, Object> getAttributes();
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到:

java.lang.NullPointerException: Cannot invoke method rightShift() on null object

at com.commercehub.houston.SomethingSpec.when favorite color is red then doSomething produces empty list of …
Run Code Online (Sandbox Code Playgroud)

java groovy unit-testing spock

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