Я получаю следующее сообщение об ошибке компиляции в затмении при попытке создать экземпляр ObjectFactory:не может создать экземпляр типа ObjectFactory
cannot instantiate the type objectfactory
Эта ошибка компиляции генерируется в следующей строке:
objectFactory = new ObjectFactory();//throws error: "Cannot instantiate the type ObjectFactory"
Полный код для вызывающего класса выглядит следующим образом:
package maintest;
import java.io.File;
import javax.naming.spi.ObjectFactory;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class Main {
private static JAXBContext context;
private static ObjectFactory objectFactory;
public static void main(String[] args) {
try {setUp();} catch (Exception e) {e.printStackTrace();}
unmarshal();
}
protected static void setUp() throws Exception {
context = JAXBContext.newInstance("generated");
objectFactory = new ObjectFactory();//throws error: "Cannot instantiate the type ObjectFactory"
}
public static <PurchaseOrderType> void unmarshal(){
Unmarshaller unmarshaller;
try {
unmarshaller = context.createUnmarshaller();
final Object object = unmarshaller.unmarshal(new File("src/test/samples/po.xml"));
} catch (JAXBException e) {e.printStackTrace();}
}
}
Как я могу устранить эту ошибку?
'javax.naming.spi.ObjectFactory' - это интерфейс, а не класс. Вам нужно создать его реализацию. – azurefrog
Какая реализация JNDI вы используете? Я ожидаю, что у его API будет какой-то способ получить объектную фабрику. – azurefrog
Что вам нужно для ObjectFactory (в вашем примере нет использования)? Вы действительно хотите использовать тот из пакета javax.naming.spi, а не один, созданный с помощью xjc? – Puce