java.lang.NoSuchMethodError: com.atlassian.confluence.content.render.xhtml.Marshaller.marshal
Asked by Developer Infotripla:

Confluence server version in Linux has been updated to 5.1 to 5.10.9  
(5.10.9 so that migration to cloud could be done, but not higher because license doesn't allow it)

Page links have stopped working.

![Nimet?n.png](https://community.atlassian.com/t5/image/serverpage/image-id/294820i7497DF2EDB92E8B6/image-size/large?v=v2&px=999 "Nimet?n.png")  

atlassian-confluence.log

```
2023-11-28 18:31:55,797 ERROR [http-nio-8980-exec-1] [[Standalone].[localhost].[/].[action]] log Servlet.service() for servlet [action] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoSuchMethodError: com.atlassian.confluence.content.render.xhtml.Marshaller.marshal(Ljava/lang/Object;Lcom/atlassian/confluence/content/render/xhtml/ConversionContext;)Ljava/lang/String;
```

<br />

In Confluence start:

```
Starting confluence
If you encounter issues starting up Confluence, please see the Installation guide at http://confluence.atlassian.com/display/DOC/Confluence+Installation+Guide

Server startup logs are located in /opt/confluence/confluence-3.5.3-std/logs/catalina.out
Using CATALINA_BASE: /opt/confluence/confluence-3.5.3-std
Using CATALINA_HOME: /opt/confluence/confluence-3.5.3-std
Using CATALINA_TMPDIR: /opt/confluence/confluence-3.5.3-std/temp
Using JRE_HOME: /opt/java_atlassian
Using CLASSPATH: /opt/confluence/confluence-3.5.3-std/bin/bootstrap.jar:/opt/confluence/confluence-3.5.3-std/bin/tomcat-juli.jar
Using CATALINA_PID: /opt/confluence/confluence-3.5.3-std/work/catalina.pid
Existing PID file found during start.
Removing/clearing stale PID file.
Tomcat started.

```

There's directory "confluence-3.5.3-std" because Confluence has already once (many years ago) been updated from 3.5.3 to 5.1. There hasn't been problems with version 5.1, however.  

Method com.atlassian.confluence.content.render.xhtml.Marshaller.marshal is found from  
/opt/confluence/confluence-3.5.3-std/confluence/WEB-INF/lib/confluence-5.10.9.jar  

Java version:

```

lrwxrwxrwx 1 root root 17 Nov 28 12:59 java_atlassian -> /opt/jdk1.8.0_351
```


Answers:
author: Nic Brough -Adaptavist-
body: Well, no, it won't help adding a jar to a path. It's not the right thing to do.

The additional bit of log that you have now provided is actually pointing to an installed app, not the core of Confluence (and certainly not the jar you've jammed in).

That, however, is still unlikely to be the problem, as a failing app will rarely crash the entire system, 99.99% of the time, the apps just fail to load or run, while the core of Confluence works ok.

You could spend months going over logs and trying different things to try to get this to work, but the root cause is simply that your upgrade went wrong.

The best thing you can do here is restore the backup of your original system and try the upgrade again.


author: Developer Infotripla
body: Adding confluence-5.10.9.jar to CLASSPATH didn't help  

<br />

Starting confluence  
If you encounter issues starting up Confluence, please see the Installation guide at <http://confluence.atlassian.com/display/DOC/Confluence+Installation+Guide>

Server startup logs are located in /opt/confluence/confluence-3.5.3-std/logs/catalina.out  
Using CATALINA_BASE: /opt/confluence/confluence-3.5.3-std  
Using CATALINA_HOME: /opt/confluence/confluence-3.5.3-std  
Using CATALINA_TMPDIR: /opt/confluence/confluence-3.5.3-std/temp  
Using JRE_HOME: /opt/java_atlassian  
Using CLASSPATH: /opt/confluence/confluence-3.5.3-std/bin/bootstrap.jar:/opt/confluence/confluence-3.5.3-std/bin/tomcat-juli.jar:**/opt/confluence/confluence-3.5.3-std/confluence/WEB-INF/lib/confluence-5.10.9.jar**   
Using CATALINA_PID: /opt/confluence/confluence-3.5.3-std/work/catalina.pid  
Existing PID file found during start.  
Removing/clearing stale PID file.  
Tomcat started.

<br />

confluence-5.10.9.jar contains class Marshaller and it's method marshal which are shown in error message:  

javax.servlet.ServletException: Servlet execution threw an exception  
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:315)

caused by: java.lang.NoSuchMethodError: com.atlassian.confluence.content.render.xhtml.Marshaller.marshal(Ljava/lang/Object;Lcom/atlassian/confluence/content/render/xhtml/ConversionContext;)Ljava/lang/String;  
at com.stiltsoft.confluence.extra.cipe.transformer.InPlaceProcessor.getInPlaceDataSectionMacro(InPlaceProcessor.java:121)


author: Developer Infotripla
body: Nothing went wrong in update and Confluence (Tomcat) started normally.


author: Nic Brough -Adaptavist-
body: Welcome to the Atlassian Community!

The first question is what went wrong in the upgrade and how you performed it?


Tags: confluence-server

server