小编chu*_*ubs的帖子

Maven无法解决多个存储库的递归依赖关系

我是maven的新手所以必须有一些我不理解的东西.但是,我添加了多个存储库来解析我的POM文件中的多个依赖项.由于某种原因,它在拉动递归依赖时失败了.我依赖于春天和春天取决于jms,它找不到jms.我不确定是谁告诉maven在哪里可以找到jms是我还是它在POM内弹簧?无论如何,我已经尝试添加另一个包含jms的存储库,但它仍然说它无法找到它.这是我的POM.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>app</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>app</name>
    <url>http://maven.apache.org</url>
    <repositories>
        <repository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype</name>
            <url>http://repository.sonatype.org</url>
        </repository>
        <repository>
            <snapshots/>
            <id>repo.pentaho.org</id>
            <name>repo.pentaho.org-snapshots</name>
            <url>http://repository.pentaho.org/artifactory/pentaho</url>
        </repository>
        <repository>
            <id>thirdparty.pentaho.org</id>
            <name>repo.pentaho.org-snapshots</name>
            <url>http://repository.pentaho.org/artifactory/thirdparty</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <name>EBR Spring Release Repository</name>
            <url>http://repository.springsource.com/maven/bundles/release</url>
        </repository>
        <repository>
            <id>com.springsource.repository.bundles.external</id>
            <name>EBR External Release Repository</name>
            <url>http://repository.springsource.com/maven/bundles/external</url>
        </repository>
    </repositories>

    <properties>
        <org.springframework.version>3.0.5.RELEASE</org.springframework.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.4</version>
            <scope>runtime</scope> …
Run Code Online (Sandbox Code Playgroud)

dependencies maven-2 repository

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

同步常见分布式数据的最佳实践

我有一个支持离线模式的互联网应用程序,用户可能会在用户重新联机时创建将与服务器同步的数据.如此,因为这个我使用UUID的身份在我的数据库,所以断开的客户端可以不用担心使用其他客户端使用的ID等,但产生的新对象,而这个伟大工程由该用户有拥有的对象是多个用户共享的对象.例如,用户使用的标记可能是全局的,远程数据库无法保存Universe中所有可能的标记.

如果脱机用户创建对象并向其添加一些标记.假设用户的本地数据库中不存在这些标记,因此软件会为它们生成UUID.现在,当这些标签同步时,需要通过解决过程来解决任何重叠.某种方法可以将远程数据库中的任何现有标记与本地版本进行匹配.

一种方法是使用一些进程,通过自然键(在标记的情况下为名称)解析全局对象,并且本地数据库必须用全局数据库中的对象替换现有对象.当与其他对象有许多连接时,这可能会很混乱.有些东西告诉我要避免这种情况.

处理此问题的另一种方法是使用两个ID.一个全局ID和一个本地ID.我希望使用UUID可以帮助避免这种情况,但我会在使用单个UUID和使用两个拆分ID之间来回切换.使用这个选项让我想知道我是否让问题失控.

另一种方法是通过非共享对象跟踪所有更改.在此示例中,用户分配标记的对象.当用户同步其脱机更改时,服务器可能会将其本地标记替换为全局标记.下次此客户端与服务器同步时,它会检测到非共享对象的更改.当客户端拉下该对象时,他将收到全局标记.该软件将简单地重新保存非共享对象,将其指向服务器的标签并孤立其本地版本.这方面的一些问题是完全同步的额外往返,以及刚刚孤立的本地数据库中的额外数据.当系统处于同步状态之间时,是否还会出现其他问题或错误?(即尝试与服务器通信并向对象发送本地UUID等).

另一种选择是避免常见物体.在我的软件中,这可能是一个可接受的答案.我没有在用户之间进行大量的对象共享,但这并不意味着我将来不会这样做.这意味着如果我需要添加这些类型的功能,选择此选项可能会在将来使我的软件瘫痪.这个选择有后果,我不确定我是否已经完全探索过它们.

所以我正在寻找任何类型的最佳实践,处理此类系统的现有算法,选择指南等.

database distributed synchronization offline

15
推荐指数
2
解决办法
5158
查看次数

如何为最后一个元素的RecyclerView添加边距?

我使用多个屏幕RecyclerView,也有一个小的Fragment是对的顶部RecyclerView.当Fragment显示时,我想确保我可以滚动到底部RecyclerView.在Fragment并不总是显示.如果我使用了边距,RecyclerView我需要动态删除并在Fragment显示时添加它们.我可以将余量添加到列表中的最后一项,但这也很复杂,如果我稍后加载更多东西(即分页),我将不得不再次剥离这些边距.

如何动态添加或删除视图边距?有什么其他选择来解决这个问题?

layout android android-fragments android-recyclerview

15
推荐指数
3
解决办法
6713
查看次数

关于将Lucene从2.2升级到2.9升级到3.1的问题

我有一个使用Lucene 2.2.x的现有软件,我需要升级到3.1.要执行此升级,我已阅读建议首先升级到2.9.x的文档,删除所有弃用警告,然后升级到3.1.x. 我已经部署了现有的索引,我需要保持代码兼容.

我的主要问题是处理日期.在2.2.x中,我不得不使用DateTools.dateToString()将Date.getTime()转换为我可以索引和存储的字符串.我在每个文档上创建了两个字段.一个用于搜索以小时分辨率存储,另一个字段未分析.现在,Lucene 2.9.x支持不同于字符串的其他数据类型.如果这些新类型与使用DateTools将日期转换为字符串的先前版本相比,可以在RangeQueries中使用吗?这是我改变它的代码:

之前:

return new RangeFilter("dateArchived-stored",
                DateTools.dateToString(start, DateTools.Resolution.MILLISECOND),
                DateTools.dateToString(end, DateTools.Resolution.MILLISECOND),
                false, true );
Run Code Online (Sandbox Code Playgroud)

后:

return NumericRangeFilter.newLongRange("dateArchived-stored", 
                                       start.getTime(), 
                                       end.getTime(), true, true );
Run Code Online (Sandbox Code Playgroud)

现在Lucene支持非字符串数据类型,我们是否需要像使用Term查询一样关注日期的解析?

IndexWriter需要声明MaxFieldLimit.以前的版本没有.使用UNLIMITED的行为与以前的版本相同吗?使用UNLIMITED是最安全的,因为我将阅读的索引是用2.2创建的吗?

之前:

new IndexWriter( indexDirectory, analyzer )
Run Code Online (Sandbox Code Playgroud)

后:

new IndexWriter( FSDirectory.open(indexDirectory), analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED )
Run Code Online (Sandbox Code Playgroud)

排序对象需要一个SortField声明,该声明需要该字段的类型.对于使用2.2.x版本索引的现有字段,我们可以将先前索引为String的字段声明为另一种类型,还是应该始终为SortField.STRING?

之前:

new Sort("timestamp", false )
Run Code Online (Sandbox Code Playgroud)

后:

new Sort(new SortField("timestamp", SortField.LONG, false) )
Run Code Online (Sandbox Code Playgroud)

这是否适用于2.2.x中内置的索引,但是由2.9.x读取?

最后,使用2.2.x内置的索引直接进入3.1.x会有什么问题吗?我将在本地开发系统上转换为2.9.x,但在现场它将从2.2.x直接转换到3.1.x. 我是否必须使用2.9.x发布版本?

java lucene

14
推荐指数
1
解决办法
728
查看次数

如何在不使用表单taglib的情况下访问JSP中的Spring 3 MVC验证器结果

我有一个使用jsp taglibs的简单的Spring 3 MVC表单.我需要根据表单中的字段是否有任何与之关联的错误来添加类.这是我的HTML的snipet:

<div class="control-group error"> <!-- HERE: binding.hasErrors() ? "error" : "" -->
    <form:label path="username" cssClass="control-label">User Name</form:label>
    <div class="controls">
        <form:input path="username" cssClass="span3"/>
        <form:errors path="username" cssClass="help-inline" />
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

所以在第一行,class属性有两个类"control-group"和"error".我只需要在该字段有与之关联的错误时添加错误类.我知道WebDataBinder以某种方式包含在页面中,但我不知道如何访问它.基本上我只是想执行一些好的旧时尚<%= binding.hasError()?"error":""%>,但如何访问页面中的活页夹?

java data-binding jsp spring-mvc

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

使用JAXB和Any进行序列化

我有一个定义以下类型的模式:

<xsd:complexType name="Payload">
   <xsd:sequence>
      <xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
   </xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)

这会创建一个像这样的对象:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Payload", propOrder = {
    "any"
})
public class Payload {

    @XmlAnyElement(lax = true)
    protected List<Object> any;
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试将另一个生成的JAXB对象添加到该Payload,执行以下操作:

Class payloadClass = ...;
JAXBContext context = JAXBContext.newInstance( WrapperRequest.class, payloadClass);
...
marshaller.marshal( wrappedRequest );
Run Code Online (Sandbox Code Playgroud)

但是我得到一个可怕的异常看起来它永远不会工作所以我决定先将有效负载对象序列化为XML,然后将其作为字符串添加到有效负载中.

StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance( sdoRequest.getClass() );
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(new JAXBElement(new QName("uri", sdoRequest.getClass().getSimpleName()), sdoRequest.getClass(), sdoRequest), writer);
payload.getAny().add( writer.toString() );
Run Code Online (Sandbox Code Playgroud)

这会引发异常,说"java.lang.String"不包含@XmlRootElement.

那么如何使用xs:任何使用过的JAXB?似乎没有什么可以工作,因为JAXB将Payload转换为Object,并且它不会仅对Object中的任何内容进行序列化.这一切都在Axis2内部,因此达到这一点非常具有挑战性.

java xsd axis2 jaxb

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

如何使用Android MediaPlayer使AAC可以通过http流进行搜索?

我有一个使用MediaPlayer的应用程序,当我流式传输下载MP3时工作正常.我试图使用相同的应用程序来传输进度下载AAC文件.它播放文件很好.当我尝试使用带有AAC的MediaPlayer.seekTo()在流中跳过时,什么不起作用.这在mp3中再次正常工作.对于AAC流,它只是在零时重新开始播放.

我的感觉是编码相关.尚未正确配置AAC文件以进行流式传输.

以下是MediaInfo工具的输出:

Size: 2.3 MB
Format: QuickTime/MPEG-4/Motion JPEG 2000 format
Stream count: 2
Duration: 00:05:02
Bit rate: 64 kb/s
Meta info:
    album_artist: Red Hot Chili Peppers
    album: The Getaway
    minor_version: 512
    encoder: Lavf57.41.100
    title: Dark Necessities
    major_brand: M4V 
    track: 2
    disc: 1
    compatible_brands: isomiso2avc1
    artist: Red Hot Chili Peppers
    copyright: 2016 Warner Bros. Records Inc.
    genre: Alternative

Stream 0
Type: video
Codec: h264
Codec profile: High 10
FourCC: avc1
Duration: 00:00:00
Width: 350
Height: 350
Sample aspect ratio: 1:1 …
Run Code Online (Sandbox Code Playgroud)

android aac stream android-mediaplayer

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

如何使用注释在SpringMVC中创建默认方法?

我无法找到解决方案,这让我发疯了.我有@Controller映射,它使用@RequestMapping响应多个方法.当没有指定更具体的内容时,我想将其中一个方法标记为默认值.例如:

@Controller
@RequestMapping("/user/*")
public class UserController {

   @RequestMapping("login")
   public String login( MapModel model ) {}

   @RequestMapping("logout")
   public String logout( MapModel model ) {}

   @RequestMapping("authenticate")
   public String authenticate( MapModel model ) {}
}
Run Code Online (Sandbox Code Playgroud)

所以/ user/login - > login方法,/ user/logout - > logout等.我想这样做,如果有人去/ user,那么它会路由到这些方法之一.但是,我没有在@RequestMapping上看到任何允许我将这些方法之一指定为默认处理程序的内容.我也没有看到任何其他注释可能在类上使用这样做.我开始怀疑它不存在.

我正在使用Spring 2.5.6.这是在3.0.0中解决的吗?我可能只是破解Spring使其工作,因为它非常烦人,这不是更直接.

提前致谢.

java spring default spring-mvc url-routing

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

修改包含的布局上的嵌套属性

我最近一直在学习合并和包括,我有一个问题,我似乎无法弄清楚答案.假设我有一个布局,定义了我想要添加到多个布局的标题组件.但是,我想更改每个包含用法的每个标题的标题或图标.例如,说我有以下布局:

<RelativeLayout android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                style="@style/menu_header">

    <Button android:id="@+id/backButton"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/button"
            android:text="@string/back"/>

    <TextView style="@style/headerTitle"
              android:layout_centerInParent="true"
              android:text="${title}"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

然后我可以使用以下内容将其包含在其他布局中:

<LinearLayout ...>
   <include android:id="@+id/searchHeader" layout="@layout/shared_header" title="Search"/>
   ...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我知道我可以修改根元素的任何layout_*属性,但是我可以定义替换到布局中的其他属性,比如说这个例子中的"title",而不必创建我自己的View子类,添加declare-styleable在valaues/resources等中的定义?

拥有这样的东西会使创建可重用的视图变得更加简单,但我似乎无法找到任何证据表明merge + include是否可以做到这一点.

android attributes view parameterized include

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

Solr 5:添加新Core无法开箱即用

所以我只是在玩Solr 5,但我尝试通过Admin UI和命令行添加一个新的Core:

bin/solr create -c new_core
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下我都会收到以下错误:

new_core: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core new_core: Error loading solr config from /Users/blah/lib/solr-5.3.0/server/solr/new_core/conf/solrconfig.xml
Run Code Online (Sandbox Code Playgroud)

我用这个启动了我的Solr服务器:

bin/solr start
Run Code Online (Sandbox Code Playgroud)

我在这里关注文档:

https://cwiki.apache.org/confluence/display/solr/Running+Solr

那么修复是什么?假设管理UI在创建新核心时必须使用一些模板,那么这应该如何开箱即用?

solr

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