0

我正在努力学习Aura。我正在尝试创建一个新组件(“hello.cmp”),但是当我尝试在服务器上运行它时,我总是会收到屏幕截图中显示的错误。我已检查服务器是否已启动并正在运行。

当我使用这个 URL“ http://localhost:8080/helloWorld/helloWorld.app ”它工作正常:

但是,当我尝试对新创建的组件“hello.cmp”进行相同操作时,它不起作用,我收到错误消息:

org.auraframework.throwable.AuraUnhandledException:无法处理您的请求

org.auraframework.throwable.quickfix.DefinitionNotFoundException: 没有名为 markup://helloWorld:hello 的组件

at org.auraframework.impl.DefinitionServiceImpl.getHelper(DefinitionServiceImpl.java:1427)

at org.auraframework.impl.DefinitionServiceImpl.compileDef(DefinitionServiceImpl.java:1551)

at org.auraframework.impl.DefinitionServiceImpl.compileDE(DefinitionServiceImpl.java:976)

at org.auraframework.impl.DefinitionServiceImpl.getUid(DefinitionServiceImpl.java:718)

at org.auraframework.impl.DefinitionServiceImpl.updateLoaded(DefinitionServiceImpl.java:588)

at org.auraframework.http.AuraServlet.internalGet(AuraServlet.java:306)

at org.auraframework.http.AuraServlet.doGet(AuraServlet.java:278)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)

at org.auraframework.http.AuraTestFilter.innerFilter(AuraTestFilter.java:314)

at org.auraframework.http.AuraTestFilter.doFilter(AuraTestFilter.java:186)

我已经多次重新启动服务器,但问题仍然存在。

请建议如何进行。

4

1 回答 1

0

当我尝试在本地运行 aura 服务器时遇到了类似的问题。

我认为您可能遇到与我相同的问题,那就是使用正确的命名空间。如果您创建了一个 hello 组件,请尝试将其包含在您的应用程序中<hello:hello/>

在 Salesforce 中,命名空间似乎默认为“c”

例如

<c:component_name> / <c:app_name>

下面我将解释我是如何理解命名空间工作的,你应该使用它来让你的组件工作:

源代码

源/主

src/main/webapp

src/main/webapp/WEB-INF

src/main/webapp/WEB-INF/components

src/main/webapp/WEB-INF/helloWorld <- 这是命名空间

src/main/webapp/WEB-INF/helloWorld/helloWorld <- 这个嵌套文件夹是“helloWorld”命名空间的组件

src/main/webapp/WEB-INF/helloWorld/helloWorld/helloWorld.app

src/main/webapp/WEB-INF/hello <- 不同的命名空间

src/main/webapp/WEB-INF/hello/hello <- 不要忘记这个 hello 命名空间的组件文件夹

src/main/webapp/WEB-INF/hello/hello/hello.cmp

helloWorld.app

<aura:application>
    hello web, from the Aura sample app helloWorld
    <hello:hello/>
</aura:application>

你好.cmp

<aura:component>
    Hello, HTML!
</aura:component>

现在,如果您希望所有内容都在同一个名称空间中,您需要做的就是确保您的文件夹结构正确:

src/main/webapp/WEB-INF/helloWorld/helloWorld/helloWorld.app

src/main/webapp/WEB-INF/helloWorld/hello/hello.cmp

现在您可以使用 <helloWorld:helloWorld/><helloWorld:hello/>

我希望这会有所帮助。

于 2017-04-05T14:04:08.657 回答