2011-12-25 4 views
2

Это является продолжением на вопрос от How to un/marshall underscored XML to/from camelcased Java using JAXB?Как использовать Moxy от Scala?

Я пытаюсь использовать Moxy (часть EclipseLink) от Scala (SBT 0.10.0), и борюсь, чтобы выяснить, как импортировать и использовать его. Для того, чтобы разбить ее на две части:

1. Импорт Moxy

На этот раз я не могу найти что-нибудь подходящее на mvnrepository.com. От чтения this page on Maven setup, я надеялся, что следующий будет работать:

// /project/Dependencies.scala 
object Dependencies { 
    val resolutionRepos = Seq(
    ScalaToolsSnapshots, 
    "EclipseLink Repo" at "http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/rt/eclipselink/maven.repo" 
) 

    object V { 
    val moxy  = "2.1.0" 
    } 

    object Runtime { 
    // We use Moxy for the naming convention transforms 
    val moxy  = "org.eclipse.persistence" % "javax.eclipselink" % V.moxy 
    } 

Но SBT жалуется module not found: org.eclipse.persistence#javax.eclipselink;2.1.0

2. Указание Moxy как мой JAXB поставщика

С выше фиксированной (спасибо SRI!) следующая проблема заключается в том, что у меня возникли проблемы с указанием Moxy как моего провайдера JAXB. Из наставлений в this article Блезе Doughan, похоже, мне нужно поставить jaxb.properties файл с помощью следующей записи в том же пакете, мои представления:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

Но, к сожалению, это, кажется, не быть подобрано, когда работающий через sbt. Есть идеи?

Любая помощь с благодарностью получена. И с Рождеством всех!

+1

Вы считали, что изменили свой артефакт на 'eclipselink', чем' javax.eclipselink'? –

+0

Большое спасибо С.Р.И. - это первая проблема. Я добавил вторую часть к вопросу, поскольку у меня все еще есть вопросы. Не стесняйтесь добавлять полный/частичный ответ, и я продолжу! –

ответ

2

CAVEAT: Я не очень хорошо знаком с SBT синтаксиса

Это сказало, ваша проблема выглядит как проблема загрузки ресурсов из SBT. Как правило, у вас есть свойства файлов, изображений и других связанных элементов в папке ресурсов в ваших проектах (sbt или maven - больше, поскольку sbt следует за структурой проекта maven). Поскольку jaxb.properties должен быть в том же пакете, что и классы представления JAXB, вам нужно настроить sbt, чтобы искать это в своих папках src. Посмотрите на страницу this, в частности раздел о неуправляемых управляемых зависимостях.

В качестве альтернативы this SO page рассказывает о проблеме с ресурсами. Надеюсь, что это ответ на ваш вопрос. :)


EDIT

Еще одна вещь, вы можете рассмотреть, так как компоненты проекта не источник автоматически подобран SBT из папки resources - вы можете просто разместить jaxb.properties в каталоге resources реплицируя путь, как в папках src. Например, если ваше представление JAXB находится в пакете com.foo.bar.baz в каталоге src, вы можете реплицировать структуру в resources, как в src/main/resources/com/foo/bar/baz, и поместить туда свой файл свойств. Я считаю, что он будет загружен в classpath на sbt.

+1

Спасибо SRI - я пошел с вашим вариантом 2! –