Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
Justin S. Davis
I can log into Fez as administrator now. However, I'm unable
to create a Fez community. I've discovered two paths through
the application for creating a community, and they both fail:
My Fez -> Create -> Create Community -> Page Not Found :-(
Browse Communities -> List of Communities -> Create Community -> [Fill out Name, Keyword 1] -> Done, blank page appears :-(
After restarting Fedora, Apache, and MySQL, we had the same problem as before. After submitting a new commumnity, we get the following errors from the Fedora server:
fedora.server.errors.MalformedPidException: PID delimiter (:) is missing.
at fedora.server.Server.getPID(Server.java:1577) at fedora.server.access.DefaultAccess.getDatastreamDissemination(DefaultAccess.java:832)
Why would it need a PID here? Arent's PIDs used by datastream objects only? Or is there some standard procedure to create a community? For example, some users or groups have to be created first?
We've already ingested two batches into Fedora via the fedora-ingest batch script (this is running on Win2003). Anticipating that we would want to logically partition batches into communities and collections, we generated PIDs with the format <collectionName>:<siteHandle>.<packageHandle>. We plan to use Fez to do the following:
- Create a community
- Create two collections with the community
- Associate each batch with a community, e.g. Administration -> Index Fedora Objects into Fez.
We appreciate your help,
Justin S. Davis
NDIIPP @ UIUC
Can you download the latest Fez file 'include/class.fedora_api.php' from the Fez CVS and try creatinga community again.
It should spit out more debug error messages instead of a blank page.
PIDs are required by all fedora objects (not datastreams). Eg an object would be UIUC:1 which could be a community, collection or record object. Each object has multiple datastreams which have datastream IDs eg example_image.jpg or DC or RELS-EXT.
Therefore when you create a community Fez calls the Fedora API-M-Lite function 'getNextPID' so it can build the XML for the community object to ingest once it has been built.
How have you setup your Fedora config file (fedora.fcfg)? What have you set to the default PID? For us at University of QLD we have setup the default PID to be UQ, and put UQ in the Retain PIDS config like this:
<param name="pidNamespace" value="UQ"/>
<param name="retainPIDs" value="UQ demo test changeme fedora-bdef fedora-bmech tutorial"/>
The pidNamespace is what your objects will be eg UQ:1, UQ:2 auto-incrementing and are what Fez will use as the PIDs for creating objects.
It looks like Fez is not able to getNextPID successfully or the pidNamespace is not in the retainPIDs config tag (and it must be or ingest will fail).
You can see if the getNextPID function is working and what it returns by opening http://your_fedora_server/mgmt/getNextPID?xml=true
in your browser.
Let me know how you go.
Hey Christiaan, hi Justin,
same problem here. Tried as you said and had a look over the fedora.fcfg. My PID is WaWo - and with './fedora/mgmt/getNextPID?xml=true' I get a correct one e.g. WaWo:3.
Well, the returning URL by then is https:
'https://localhost:8443/fedora/mgmt/getNextPID?xml=true' - Question - may this be a problem?
(Certificate is installed correctly.)
(fedora is set to 'ssl-authenticate-apim')
Also, after I submited the Community-creation page back (Publish or Approval or Done), I get a new PID in the background. You can see it, while you open a second browser and check the PID afterwards. It increases. But still the page is empty.
Hopefully this helps out a little bit more.
Is your WaWo nameSpace also in your retainPIDs in your fedora.fcfg? Fez cannot save PIDS it obtained from getNextPID unless that nameSpace is in retainPIDs.
Here the part of the fedora.fcfg:
<param name="pidNamespace" value="WaWo"/>
<param name="retainPIDs" value="WaWo demo test changeme fedora-bdef fedora-bmech tutorial"/>
PS: Will try to switch the SSL/NOSSL Security Setup possibilities today, maybe there's a problem.
I changed the Fedora Security to nosslapim and checked the fedora.fcfg again; also I changed it in the Fez settings.
I fedora I set the log to 'finest'.
Now some fedora logs:
! Here I started to get a PID with 'http://localhost:8080/fedora/mgmt/getNextPID?xml=true' - and it works correct:
<finest time="1137060048465" thread="11">Entered DefaultManagement.getNextPID</finest>
<finest time="1137060048465" thread="11">Entered enforceGetNextPid</finest>
<finest time="1137060048465" thread="11">Exiting enforceGetNextPid</finest>
<finest time="1137060048576" thread="11">Exiting DefaultManagement.getNextPID</finest>
! Now I use Fez and want to create a community, therefore when loding the page the getPid functions are called from fez - Result in fedoralog here:
<finest time="1137060105067" thread="10">fedora.server.utilities.Logger: [FedoraAccessServlet] GetDatastreamDissemination Syntax Encountered: http://localhost:8080/fedora/get/-2/FezMD?null</finest>
<finest time="1137060105067" thread="10">fedora.server.utilities.Logger: PID: -2 dsID: FezMD asOfDate: null</finest>
<finest time="1137060105838" thread="12">got server instance: s_init: true</finest>
<warning time="1137060105888" thread="12">Error carried up to API-A level: fedora.server.errors.MalformedPidException
Now, hopefully this helps you out more.
Sorry wrong posting earlier...
I tried ELATED - exact same Fedora Config as when using fez - works fine. There I get the PID and when browsing with fedora-admin its all there.
So, the settings/config from fedora seems correct.
Hi Jurgen and Justin,
In include/class.fedora_api.php in function 'openSoapCall' can you uncomment (remove the '//' these two lines?
Then try creating a community again. This will dump out a large amount of soap debug data which will help diagnose the problem.
Also perhaps you could send me your Fez config.inc.php (without usernames and passwords) to mrangryfish at users.sourceforge.net.
Email with debug and config files on its way to you.
Justin S. Davis
I've isolated the problem. Our Tomcat Fedora web.xml file refers to the API-M and API-A SOAP paths by the old (prior to Fedora 2.1b) manner that appends "soap", e.g., "http://localhost:8082/fedora/management/soap". Fez is trying to reach "http://localhost:8082/fedora/services/management", the new way as of Fedora 2.1b. More on this is available in Fedora's documentation at http://www.fedora.info/resources/faq.shtml.
So, Christiaan, what do you recommended, modify the Fez config or the Fedora web.xml? If the former, could you walk me through what Fez config files to modify and what changes to make?
Justin S. Davis
You have two options:
I would actually recommend upgrading Fedora as 2.1b is slightly more stable than 2.0.
The major thing that came in with 2.1b is XACML security. For Fez I recommend not using the new XACML engine as it slows Fedora down (at least it did for us). It can be turned off in the fedora.fcfg as per www.fedora.info documentation. The speed issues are being fixed for 2.1 Final.
Fedora 2.1 Final is supposed to be released soon, although the release dates keep slipping. It's up to you!
Justin S. Davis
Well, I stand corrected - the problem is not isolated. getNextPID works, we've upgraded to Fedora 2.1, etc. When creating a community, still getting a blank screen with a new, correct PID at the top. Dumped SOAP debug info as you suggested, no errors appeared in the debug info beneath the PID.
We are getting this issue with Fez, too, I think. We are using Fez 1.1 BETA with Fedora 2.1. I cannot create a Fez Community. After I put in the name and the first keyword and hit done, the resulting enter_metadata.php page is blank and no community is created.
I appear to be connecting to my Fedora repository, since, I can see my Fedora objects when I click to Index Fedora Objects into Fez in the Admin area.
I thought that error logging wasn't on for PHP, but I definitely have it on now but still getting nothing but a blank page.