Я не думаю, что какой-либо из существующих ответов действительно ответил на вопрос, так что вот мой подход к этому.
Подходите к одному, пользуясь внутренними компонентами com.sun. *:
(класс-помощник)
import com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.validation.Schema;
import javax.xml.validation.Validator;
import javax.xml.validation.ValidatorHandler;
public class MisconfiguredDocumentBuilderFactory extends DocumentBuilderFactoryImpl {
@Override
public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
super.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
"http://www.w3.org/2001/XMLSchema");
super.setSchema(new Schema() {
@Override
public Validator newValidator() {
return null;
}
@Override
public ValidatorHandler newValidatorHandler() {
return null;
}
});
return super.newDocumentBuilder();
}
}
(Фактический тестовый класс)
public class OPClassTest {
private final static String DOC_BUILDER_PROPERTY_NAME =
"javax.xml.parsers.DocumentBuilderFactory";
@Test
public void testParserConfigurationProblem() {
System.setProperty(DOC_BUILDER_PROPERTY_NAME,
MisconfiguredDocumentBuilderFactory.class.getCanonicalName());
targetClass.createCompleteExportXml("somefilename", "somecontent");
}
@After
public void tearDown() {
System.clearProperty(DOC_BUILDER_PROPERTY_NAME);
}
}
Подход 2 без использования com.sun. * namespaces
(Класс помощника)
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
public class MisconfiguredDocumentBuilderFactory2 extends DocumentBuilderFactory {
@Override
public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
throw new ParserConfigurationException(
"this factory is not configured properly");
}
@Override
public void setAttribute(String name, Object value) throws IllegalArgumentException {
// no-op
}
@Override
public Object getAttribute(String name) throws IllegalArgumentException {
return null;
}
@Override
public void setFeature(String name, boolean value) throws ParserConfigurationException {
// no-op
}
@Override
public boolean getFeature(String name) throws ParserConfigurationException {
return false;
}
}
(Фактический тестовый класс)
public class OPClassTest {
private final static String DOC_BUILDER_PROPERTY_NAME =
"javax.xml.parsers.DocumentBuilderFactory";
@Test
public void testParserConfigurationProblem() {
System.setProperty(DOC_BUILDER_PROPERTY_NAME,
MisconfiguredDocumentBuilderFactory2.class.getCanonicalName());
targetClass.createCompleteExportXml("somefilename", "somecontent");
}
@After
public void tearDown() {
System.clearProperty(DOC_BUILDER_PROPERTY_NAME);
}
}
В вашем
link.js
Link.belongsToMany(models.Overlay, {
as: 'overlays',
through: models.LinkOverlays,
foreignKey: 'linkId',
targetKey: 'id',
});
Link.belongsToMany(models.Tracker, {
as: 'trackers',
through: models.LinkTrackers,
foreignKey: 'trackerId', // should be linkId
targetKey: 'id',
});
связь с LinkOverlays
осуществляется через linkId
, а связь с LinkTrackers
- через [ 114] должно быть linkId
, а также