小编yza*_*rew的帖子

将JAXBContext注入spring

我试图通过以下方式注入JAXBContextspring应用程序上下文:

<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
  <constructor-arg type="java.lang.Class" value="com.package.MyClassName"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

它引发了一个异常:

找不到匹配的工厂方法:工厂方法'newInstance'

我也尝试:

<bean id="jaxbContext" class="javax.xml.bind.JAXBContext" factory-method="newInstance">
  <constructor-arg type="java.lang.String" value="com.package"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

它引发了一个例外:

javax.xml.bind.JAXBException:"com.package"不包含ObjectFactory.class或jaxb.in​​dex我确实在包"com.package"中放了一个jaxb.in​​dex文件,并在文件中有一行"MyClassName".

spring jaxb code-injection

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

Spark Kafka Direct DStream - 如果设置了num-executors,则在yarn-cluster模式下有多少个执行程序和RDD分区?


我正在尝试使用Spark Kafka Direct Stream方法.它通过创建与kafka主题分区一样多的RDD分区来简化并行性,如本文档中所述.根据我的理解,spark将为每个RDD分区创建一个执行程序来进行计算.

因此,当我以纱线群集模式提交应用程序,并将选项num-executors指定为与分区数量不同的值时,将会有多少执行程序?

例如,有一个带有2个分区的kafka主题,我将num-executors指定为4:

export YARN_CONF_DIR=$HADOOP_HOME/client_conf

./bin/spark-submit \
--class playground.MainClass \
--master yarn-cluster \
--num-executors 4 \
../spark_applications/uber-spark-streaming-0.0.1-SNAPSHOT.jar \
127.0.0.1:9093,127.0.0.1:9094,127.0.0.1:9095 topic_1
Run Code Online (Sandbox Code Playgroud)

我试一试,发现执行器的数量是4,每个执行器都会从kafka读取和处理数据.为什么?kafka主题中只有2个分区,4个执行程序如何从kafka主题中读取,该主题只有2个分区?

以下是spark应用程序和日志的详细信息.

我的spark应用程序,它从每个执行程序中的kafka 打印收到的消息(以flatMap方法):

    ...
    String brokers = args[0];
    HashSet<String> topicsSet = new HashSet<String>(Arrays.asList(args[1].split(",")));
    kafkaParams.put("metadata.broker.list", brokers);

    JavaPairInputDStream<String, String> messages =
        KafkaUtils.createDirectStream(jssc, String.class, String.class, StringDecoder.class, StringDecoder.class,
            kafkaParams, topicsSet);

    JavaPairDStream<String, Integer> wordCounts =
        messages.flatMap(new FlatMapFunction<Tuple2<String, String>, String>()
        {
            public Iterable<String> call(Tuple2<String, String> tuple) throws Exception
            {
                System.out.println(String.format("[received from kafka] tuple_1 …
Run Code Online (Sandbox Code Playgroud)

apache-kafka apache-spark spark-streaming

19
推荐指数
1
解决办法
3830
查看次数

jersey 2:如何创建自定义HTTP参数绑定

我正在尝试为我的restful服务创建一个自定义的http param绑定.请参阅下面的示例.

@POST
@Path("/user/{userId}/orders")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public MyResult foo(@PathParam("userId") String someString, @UserAuthHeaderParam String authString){

}
Run Code Online (Sandbox Code Playgroud)

您可以看到函数签名中有UserAuthHeaderParam注释.我想要做的是有一个自定义的http param绑定,而不是标准的javax.ws.rs.*Param.

我试图实现org.glassfish.hk2.api.InjectionResolver,它基本上从http头中提取值:

public class ProtoInjectionResolver implements InjectionResolver<UserAuthHeaderParam>{
...
@Override
public Object resolve(Injectee injectee, ServiceHandle< ? > root)
{

    return "Hello World";
}
...

}
Run Code Online (Sandbox Code Playgroud)

当我调用restful服务时,服务器会遇到异常.它表明框架无法解析函数签名中的参数:

org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at Injectee(requiredType=String,parent=MyResource,qualifiers={}),position=0,optional=false,self=false,unqualified=null,2136594195), 

java.lang.IllegalArgumentException: While attempting to resolve the dependencies of rs.server.MyResource errors were found
Run Code Online (Sandbox Code Playgroud)

请帮忙.任何建议表示赞赏.我在谷歌上做了很多搜索,但未能使它工作.泽西岛2.*.如何替换Jersey 1.*的InjectableProvider和AbstractHttpContextInjectable可能是类似的问题.

- 更新:我使用AbstractBinder将我的解析器绑定到UserAuthHeaderParam:

public class MyApplication extends ResourceConfig
{

public MyApplication()
{
    register(new AbstractBinder() …
Run Code Online (Sandbox Code Playgroud)

java grizzly jersey-2.0

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

c:forEach抛出javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'foo'

我的项目是使用hibernate 3.4.0 GA访问数据库,Spring MVC 2.5.6用于处理Web请求,jsp(jstl)用于呈现视图(网页).

我通过hibernate从数据库中获取实体列表,并将其作为模型添加到jsp的modelmap中.当jsp渲染我的网页时,它会抛出"javax.el.PropertyNotFoundException".

javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'timestamp'

而例外来自:

<c:forEach var="statusHistory" items="statusHistoryList">
    ${statusHistory.timestamp}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

似乎"statusHistory"被视为String,但不是对象.

"StatusHistory"类具有"timestamp"属性和getter方法:

public Class StatusHistory{
    ...
    private Date timestamp;
    public Date getTimestamp(){...}
    ...
}
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了一整天.有些帖子说getter方法不符合约定.但似乎不是我的情况.
有人可以帮帮我吗?

在此先感谢安德鲁

foreach jsp jstl el propertynotfoundexception

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