斯卡拉部署过程中的stax编译问题

发布于 2024-09-12 20:59:35 字数 2628 浏览 2 评论 0原文

我在 scala-ide (eclipse 插件)中开发了一个应用程序,没有错误或警告。现在我正在尝试将它部署到 stax 云:

$ stax deploy

但它无法编译它:

compile:
   [scalac] Compiling 2 source files to /home/gleontiev/workspace/rss2lj/webapp/WEB-INF/classes
error: error while loading FlickrUtils, Scala signature FlickrUtils has wrong version
 expected: 4.1
 found: 5.0
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:8: error: com.folone.logic.FlickrUtils does not have a constructor
        val dispatcher = new FlickrUtils("8196243@N02")
                         ^
error: error while loading Photo, Scala signature Photo has wrong version
 expected: 4.1
 found: 5.0
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:9: error: value link is not a member of com.folone.logic.Photo
        val linksGetter = (p:Photo) => p.link
                                         ^
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:15: error: com.folone.logic.FlickrUtils does not have a constructor
        val dispatcher = new FlickrUtils("8196243@N02")
                         ^
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:16: error: value medium1 is not a member of com.folone.logic.Photo
        val picsGetter = (p:Photo) => p.medium1
                                        ^
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/RefreshSnippet.scala:12: error: com.folone.logic.FlickrUtils does not have a constructor
        val dispatcher = new FlickrUtils("8196243@N02")
                         ^
7 errors found
ERROR: : The following error occurred while executing this line:
/home/gleontiev/workspace/rss2lj/build.xml:61: Compile failed with 7 errors; see the compiler error output for details.

我看到两个错误,它在抱怨: 第一个是 FlickrUtils 类构造函数,其定义如下:

class FlickrUtils(val userId : String) {
    //...
}

第二个是事实,Photo 类中缺少两个字段,即:

class Photo (val photoId:String, val userId:String, val secret:String, val server:String) {
    private val _medium1 = "/sizes/m/in/photostream"
    val link = "http://flickr.com/photos/" + userId + "/" + photoId
    val medium1 = link + _medium1
}

似乎 stax sdk 使用了错误的编译器(?)。我怎样才能让它使用正确的呢?如果不是,那么这里的问题是什么,有什么方法可以解决这个问题?

编辑: $ scala -version

Scala code runner version 2.8.0.final -- Copyright 2002-2010, LAMP/EPFL

我尝试用 scalac 手动编译所有内容,将所有内容放到它们的位置,然后运行 ​​stax deploy< /code> 之后——结果相同。

I developed an app in scala-ide (eclipse plugin), no errors or warnings. Now I'm trying to deploy it to the stax cloud:

$ stax deploy

But it fails to compile it:

compile:
   [scalac] Compiling 2 source files to /home/gleontiev/workspace/rss2lj/webapp/WEB-INF/classes
error: error while loading FlickrUtils, Scala signature FlickrUtils has wrong version
 expected: 4.1
 found: 5.0
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:8: error: com.folone.logic.FlickrUtils does not have a constructor
        val dispatcher = new FlickrUtils("8196243@N02")
                         ^
error: error while loading Photo, Scala signature Photo has wrong version
 expected: 4.1
 found: 5.0
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:9: error: value link is not a member of com.folone.logic.Photo
        val linksGetter = (p:Photo) => p.link
                                         ^
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:15: error: com.folone.logic.FlickrUtils does not have a constructor
        val dispatcher = new FlickrUtils("8196243@N02")
                         ^
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/DisplaySnippet.scala:16: error: value medium1 is not a member of com.folone.logic.Photo
        val picsGetter = (p:Photo) => p.medium1
                                        ^
/home/gleontiev/workspace/rss2lj/src/scala/example/snippet/RefreshSnippet.scala:12: error: com.folone.logic.FlickrUtils does not have a constructor
        val dispatcher = new FlickrUtils("8196243@N02")
                         ^
7 errors found
ERROR: : The following error occurred while executing this line:
/home/gleontiev/workspace/rss2lj/build.xml:61: Compile failed with 7 errors; see the compiler error output for details.

I see two errors, it is complaining about: the first one is FlickrUtils class constructor, which is defined like this:

class FlickrUtils(val userId : String) {
    //...
}

The second one is the fact, that two fields are missing from Photo class, which is:

class Photo (val photoId:String, val userId:String, val secret:String, val server:String) {
    private val _medium1 = "/sizes/m/in/photostream"
    val link = "http://flickr.com/photos/" + userId + "/" + photoId
    val medium1 = link + _medium1
}

Seems like stax sdk uses the wrong comliler (?). How do I make it use the right one? If it is not, what is the problem here, and what are some ways to resolve it?

Edit: $ scala -version says

Scala code runner version 2.8.0.final -- Copyright 2002-2010, LAMP/EPFL

I tried compiling everything with scalac manually, puting everything to their places, and running stax deploy afterwards -- same result.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

江湖正好 2024-09-19 20:59:35

实际上,我通过将 FlickrUtilsPhoto 类移至包(片段最初所在的位置)解决了这个问题,但我仍然不明白,为什么它无法编译和使用它们来自另一个包。

I actually resolved this by moving FlickrUtils and Photo classes to the packages, where snippets originally are, but I still don't get, why it was not able to compile and use them from the other package.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文