小编Gon*_*gui的帖子

从Maven 2/3迁移到Gradle

我一直在研究Gradle,看起来很有趣.我认为能够用除XML之外的任何其他语言编写脚本非常酷,我不清楚多语言Maven POM文件是否仍然是一个可行的选择.

我正在开发一个使用Maven 2.2.1作为构建工具的项目.这个项目:

  • 是多模块的
  • 使用(也是我们自己的)插件
  • 依赖于Artifactory代理存储库

从Maven到Gradle的迁移是否有任何经验?陷阱,痛点,角落案件?任何形式的经验都是非常受欢迎的.

migration build-process maven-2 gradle

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

在<ui:repeat>里面的<p:graphicImage>中显示数据库blob图像

我在JBoss 7.1.1上使用PrimeFaces 3.2.

我试图在MySQL数据库中显示存储在BLOB中的图像<ui:repeat>.图像存储在a中byte[],然后转换StreamedContent为如下:

InputStream stream = new ByteArrayInputStream(ingredient.getImage());
ingredient.setJsfImage(new DefaultStreamedContent(stream, "image/jpg"));
Run Code Online (Sandbox Code Playgroud)

然后我试图在Facelet中显示它如下:

<ui:repeat var="ingredient" value="#{formBean.ingredientResultSet}">
    <p:panel id="resultsPanel" header="#{ingredient.location.shopName}">
        <p:graphicImage value="#{ingredient.jsfImage}" alt="No picture set" />
...
Run Code Online (Sandbox Code Playgroud)

但是,在加载页面时,我在JBoss中收到以下错误:

SEVERE [org.primefaces.application.PrimeResourceHandler](http - 127.0.0.1-8080-12)流式动态资源出错.

这是怎么造成的,我该如何解决?

jsf dynamic-content primefaces uirepeat graphicimage

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

JMS - 从一个消费者到多个消费者

我有一个JMS客户端,它生成消息并通过JMS队列发送给其唯一的消费者.

我想要的是不止一个消费者获得这些消息.我想到的第一件事就是将队列转换为主题,因此当前和新的消费者可以订阅并获得传递给所有消息的相同消息.

这显然涉及在生产者和消费者方面修改当前客户端代码.

我还想看看其他选项,比如创建第二个队列,这样我就不必修改现有的消费者了.我相信这种方法有一些优点(如果我错了,请纠正我)平衡两个不同队列之间的负载而不是一个,这可能会对性能产生积极影响.

我想就你可能会看到的这些选项和缺点/专业人士提出建议.任何反馈都非常感谢.

java messaging jms message-queue

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

Spring限定符和属性占位符

有谁知道我是否应该使用属性占位符作为限定符中的表达式?我似乎无法让这个工作.

我使用的是Spring 3.0.4.

@Controller
public class MyController {
   @Autowired
   @Qualifier("${service.class}")
   Service service;
}

@Service
@Qualifier("ServiceA")
ServiceA implements Service {
   public void print() {
       System.out.println("printing ServiceA.print()");
   } 
}

@Service
@Qualifier("ServiceB")
ServiceB implements Service {
   public void print() {
      System.out.println("printing ServiceB.print()");
   } 
}
Run Code Online (Sandbox Code Playgroud)

XML:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="file:/etc/config.properties"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

config.properties:

config.properties
service.class=serviceB
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection

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

在方法调用之后使用EJB拦截器

我知道可以在方法调用之前使用@AroundInvoke注释来使用拦截器.

我想要做的是在方法调用之后执行某些代码,这样我就可以在方法执行之前和之后创建一个日志条目.

这可能是EJB3,还是我需要使用AOP?

interceptor ejb-3.0

10
推荐指数
1
解决办法
3688
查看次数

使用Maven项目提供单个jar

我想向我的客户端提供一个.jar文件,但我的项目目前是用Maven构建的,我有几个模块可以生成一个.jar.

我知道嵌套不同的.jar文件并不是一个好主意,所以我不知道如何实现这一目标.

有任何想法吗?

maven-2 jar

7
推荐指数
2
解决办法
6794
查看次数

使用本地EJB,在同一个Container但不同的耳朵

我正在试图在同一个Glassfish中使用本地EJB,但不同的耳朵.但Glassfish无法找到本地EJB或无法使用

我读到了这一点: 根据JavaEE教程,@ Local bean的客户端必须在与它访问的企业bean相同的JVM中运行.

在第一只耳朵中,我在jar中有本地接口

@Local
public interface MyLocalBean {
  int getNumber(int num3);
} 
Run Code Online (Sandbox Code Playgroud)

在另一个jar中,我有实现

@Stateless
@LocalBean
public class MyLocalBeanImpl implements MyLocalBean,Serializable{
     public MyLocalBeanImpl() {}
     public int getNumber(int num3){......
Run Code Online (Sandbox Code Playgroud)

在第二只耳朵中,在同一条Glassfish中

我在jar里面有本地接口

@Local
public interface MyLocalBean {
int getNumber(int num3);
 } 
Run Code Online (Sandbox Code Playgroud)

在另一个罐子里,我有消费者

@Stateless
@LocalBean
public class BeanConsumer{
@EJB(name="MyLocalBeanImpl")
private MyLocalBean beanlocal;
Run Code Online (Sandbox Code Playgroud)

使用@EJB和(name ="MyLocalBeanImpl")参数时,错误是:

Cannot resolve reference Local ejb-ref name=MyLocalBeanImpl,Local 3.x 
interface =my.package.MyLocalBean,ejb-link=null,lookup=,
mappedName=,jndi-name=,refType=Session|#]
Run Code Online (Sandbox Code Playgroud)

使用@EJB和(name ="my.package.MyLocalBeanImpl")参数,错误是:

Cannot resolve reference Local ejb-ref name=my.package.MyLocalBeanImpl,
Local 3.x interface =my.package.MyLocalBean,ejb-link=null,
lookup=,mappedName=,jndi-name=,refType=Session|#]***
Run Code Online (Sandbox Code Playgroud)

我也尝试使用mappedName

    @Stateless(name="MyLocalBeanImpl",mappedName …
Run Code Online (Sandbox Code Playgroud)

java ejb java-ee ejb-3.0 glassfish-3

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

Guice和JSR-330

JSR-330根据包指定了某些命名约定,例如:

javax.inject.Inject
javax.inject.Scope
Run Code Online (Sandbox Code Playgroud)

Guice是JSR-330的参考实现.但是,在使用它时,您会注意到它不符合规范.例如:

com.google.inject.Inject
com.google.inject.Scope
Run Code Online (Sandbox Code Playgroud)

到目前为止我看到的任何参考实现都没有发生这种情况.是什么让Google Guice如此特别,以至于他们可以忽略他们正在实施的规范?

java dependency-injection guice jsr330

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

Web服务版本控制和服务器端处理

我正在尝试为Web服务版本控制制定策略,以及如何从SCM的角度处理版本.

我们正在进行自下而上(JAX-WS)服务,因此对模式的控制较少,并且无法遵循最佳实践的某些模式版本.我目前的想法是:

1)重大变化(非向后兼容):

  • 通过新服务URL(URL版本控制)传输到API客户端.例如:

HTTP://com.example/v1/MyService

HTTP://com.example/v2/MyService

在我看来,这对客户和开发人员来说都不那么麻烦.客户端只更新服务URL(通常在一个地方)而不是更新所有服务调用(比如使用服务名称版本 - MyServiceV1,MyServiceV2,...).

  • 在服务器端,这通过在SVN中标记服务来反映:MyService- [major].[minor]例如MyService-1.0

2)微小变化(向后兼容):

  • 这是我有更多疑虑的地方.一些最佳实践涉及修改模式命名空间,而后者又涉及升级兼容客户.

  • 在服务器端清楚,因为我正在使用上面的策略([service_name] - [major].[minor])

对于上述策略的意见和对次要版本控制的建议表示赞赏.

java svn versioning web-services

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

为什么字符变得无用?libcurl c++ Utf-8编码的html;

首先,抱歉我的英语不好。\n我已经完成了研究,但没有任何相关答案来解决我的问题。\n我已经理解并了解了 CodePages Utf 8 以及有关 c 或 c++ 中的其他内容,\nand还知道字符串可以保存 utf8。\n我的开发机器 winxp english,控制台代码页设置为 1254(Windows 土耳其语),我可以使用土耳其语扩展字符 (\xc4\xb0\xc4\xb1\xc4\x9f\xc5\x9f\xc3 \xa7\xc3\xbc\xc3\xb6) 在 std::string 中,计算它们并将它们发送到 mysqlpp api 以写入数据库。没有问题。但是当我想使用curl 获取一些html 并将其写入std::string 时,我的问题就开始了。

\n\n
#include <iostream>\n#include <windows.h>\n#include <wincon.h>\n#include <curl.h>\n#include <string>\nint main()\n{\n   SetConsoleCP(1254);\n   SetConsoleOutputCP(1254);\n   std::string s;\n   std::cin>>s;\n   std::cout<<s<<std::endl;\n   return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我运行这些并输入 \xc4\x9f\xc5\x9f\xc3\xa7\xc3\xb6\xc3\xbc\xc4\xb0\xc4\xb1 时,输出是相同的 \xc4\x9f\xc5\x9f\xc3\ xa7\xc3\xb6\xc3\xbc\xc4\xb0\xc4\xb1;

\n\n
#include <iostream>\n#include <windows.h>\n#include <wincon.h>\n#include <curl.h>\n#include <string.h>\n\nsize_t writer(char *data, size_t size, size_t nmemb, std::string *buffer);\n{\n   int res;\n   if(buffer!=NULL)\n   {\n      buffer->append(data,size*nmemb);\n      res=size*nmemb;\n   }\n   return res;\n}\nint main()\n{\n   SetConsoleOutputCP(1254);\n   std::string html;\n   CURL *curl;\n   CURLcode result;\n   curl=curl_easy_init();\n …
Run Code Online (Sandbox Code Playgroud)

c++ string utf-8 libcurl codepages

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