Fuse IDE
  1. Fuse IDE
  2. ECLIPSE-624

Cannot view route in UI editor when using prefix on <camelContext>

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Blocker Blocker
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 2.1.0
    • Component/s: None
    • Labels:
      None
    • Similar Issues:
      Show 8 results 

      Description

      At the Berlin conference I created a new project using the Camel archetypes (spring based) and imported that into Fuse IDE.

      This morning I upgraded Fuse IDE to the latest RCP build, and when I double click the camel-context.xml file, the UI is empty. And I can find in the error log from Eclipse

      javax.xml.bind.UnmarshalException
       - with linked exception:
      [org.xml.sax.SAXParseException: The prefix "camel" for element "camel:camelContext" is not bound.]
      	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:315)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:505)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:206)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:173)
      	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
      	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:194)
      	at org.fusesource.camel.rider.util.RouteXml.unmarshal(RouteXml.scala:395)
      	at org.fusesource.camel.rider.util.RouteXml.unmarshal(RouteXml.scala:335)
      	at com.fusesource.rider.model.io.XmlContainerMarshaller.loadRoutesFromText(XmlContainerMarshaller.java:40)
      	at com.fusesource.rider.editor.editor.RiderDesignEditor.loadEditorText(RiderDesignEditor.java:1267)
      	at com.fusesource.rider.editor.editor.RiderDesignEditor.validateXml(RiderDesignEditor.java:1284)
      	at com.fusesource.rider.editor.editor.RiderDesignEditor.runIfTextModified(RiderDesignEditor.java:1392)
      	at com.fusesource.rider.editor.editor.RiderEditor.updatedTextPage(RiderEditor.java:651)
      	at com.fusesource.rider.editor.editor.RiderEditor.pageChange(RiderEditor.java:595)
      	at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
      	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
      	at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2746)
      	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1433)
      	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
      	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3974)
      	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3613)
      	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
      	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
      	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
      	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
      	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
      	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
      	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
      	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
      	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
      	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
      Caused by: org.xml.sax.SAXParseException: The prefix "camel" for element "camel:camelContext" is not bound.
      	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
      	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
      	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
      	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
      	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:310)
      	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3104)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
      	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
      	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
      	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
      	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
      	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
      	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
      	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
      	at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:200)
      	... 50 more
      

      See screenshot

        Activity

        Hide
        Claus Ibsen
        added a comment -

        And the XML is

        <?xml version="1.0" encoding="UTF-8"?>
        <!--
            Licensed to the Apache Software Foundation (ASF) under one or more
            contributor license agreements.  See the NOTICE file distributed with
            this work for additional information regarding copyright ownership.
            The ASF licenses this file to You under the Apache License, Version 2.0
            (the "License"); you may not use this file except in compliance with
            the License.  You may obtain a copy of the License at
        
            http://www.apache.org/licenses/LICENSE-2.0
        
            Unless required by applicable law or agreed to in writing, software
            distributed under the License is distributed on an "AS IS" BASIS,
            WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            See the License for the specific language governing permissions and
            limitations under the License.
        -->
        
        <!-- Configures the Camel Context-->
        
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:camel="http://camel.apache.org/schema/spring"
               xsi:schemaLocation="
               http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
               http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
        
          <camel:camelContext xmlns="http://camel.apache.org/schema/spring">
            <!-- here is a sample which processes the input files
                 (leaving them in place - see the 'noop' flag)
                 then performs content based routing on the message using XPath -->
            <camel:route>
              <camel:from uri="file:src/data?noop=true"/>
              <camel:choice>
                <camel:when>
                  <camel:xpath>/person/city = 'London'</camel:xpath>
                  <camel:log message="UK message"/>
                  <camel:to uri="file:target/messages/uk"/>
                </camel:when>
                <camel:otherwise>
                  <camel:log message="Other message"/>
                  <camel:to uri="file:target/messages/others"/>
                </camel:otherwise>
              </camel:choice>
            </camel:route>
          </camel:camelContext>
        
        </beans>
        
        Show
        Claus Ibsen
        added a comment - And the XML is <?xml version= "1.0" encoding= "UTF-8" ?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License" ); you may not use this file except in compliance with the License. You may obtain a copy of the License at http: //www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Configures the Camel Context--> <beans xmlns= "http: //www.springframework.org/schema/beans" xmlns:xsi= "http: //www.w3.org/2001/XMLSchema-instance" xmlns:camel= "http: //camel.apache.org/schema/spring" xsi:schemaLocation=" http: //www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http: //camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <camel:camelContext xmlns= "http: //camel.apache.org/schema/spring" > <!-- here is a sample which processes the input files (leaving them in place - see the 'noop' flag) then performs content based routing on the message using XPath --> <camel:route> <camel:from uri= "file:src/data?noop= true " /> <camel:choice> <camel:when> <camel:xpath>/person/city = 'London'</camel:xpath> <camel:log message= "UK message" /> <camel:to uri= "file:target/messages/uk" /> </camel:when> <camel:otherwise> <camel:log message= "Other message" /> <camel:to uri= "file:target/messages/others" /> </camel:otherwise> </camel:choice> </camel:route> </camel:camelContext> </beans>
        Hide
        Claus Ibsen
        added a comment -

        I am actually not sure whether the archetype creates the XML with camel: prefix or whatever. But we got this problem.

        Show
        Claus Ibsen
        added a comment - I am actually not sure whether the archetype creates the XML with camel: prefix or whatever. But we got this problem.
        Hide
        Claus Ibsen
        added a comment -

        Okay I just tried creating a new Fuse project using the wizard, and selecting camel-archetype-spring, and it generates an XML similar to above, which cannot be work with the UI editor.

        Show
        Claus Ibsen
        added a comment - Okay I just tried creating a new Fuse project using the wizard, and selecting camel-archetype-spring, and it generates an XML similar to above, which cannot be work with the UI editor.
        Hide
        James Strachan
        added a comment -

        Resolved; it was a regression introduced by the fix for ECLIPSE-455. Fix should be in 2.1.371 or later (build hopefully will be done in 2 hours...)

        Show
        James Strachan
        added a comment - Resolved; it was a regression introduced by the fix for ECLIPSE-455 . Fix should be in 2.1.371 or later (build hopefully will be done in 2 hours...)
        Hide
        James Strachan
        added a comment -

        fixed in 2.1.375

        Show
        James Strachan
        added a comment - fixed in 2.1.375

          People

          • Assignee:
            James Strachan
            Reporter:
            Claus Ibsen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: